2016-03-29 9 views
0

Dies ist die Select.java Datei, die die SpinnereienDynamisch besiedelten spinner kehrt keine Aussicht, und ich bin nicht in der Lage Elemente auszuwählen

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.RecyclerView; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.ArrayList; 

public class select extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_select); 
    final Spinner s1 = (Spinner) findViewById(R.id.s1); 
    ArrayAdapter s1adapter = ArrayAdapter.createFromResource(this, R.array.s1,R.layout.spin); 
    s1adapter.setDropDownViewResource(R.layout.spin); 
    s1.setAdapter(s1adapter); 
    final ArrayList<String> array = new ArrayList<>(); 
    s1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      array.add("1"); 
      long iid = parent.getSelectedItemId(); 
      if (iid == 0) { 
       array.clear(); 
       array.add("id 1"); 
      } else if (iid == 1) { 
       array.clear(); 
       array.add("id 2"); 
       array.add("id 3"); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
    Spinner s2 = (Spinner) findViewById(R.id.s2); 
    Adapter s2adapter = new Adapter(this,R.layout.spin,array); 
    s2.setAdapter(s2adapter); 
    final String l = null; 
    s2.setSelection(0); 
    s2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      Intent less = new Intent(getBaseContext(),less.class); 

      Toast.makeText(getBaseContext(),"in",Toast.LENGTH_SHORT); 
      if (parent.getItemAtPosition(position).equals("id 1")) { 
       less.putExtra("lesson_1", l); 
       Toast.makeText(getBaseContext(),"in",Toast.LENGTH_SHORT); 
      } else if (parent.getItemAtPosition(position).equals("id 2")) { 
       less.putExtra("lesson_2", l); 
      } else if (parent.getItemAtPosition(position).equals("id 3")) { 
       less.putExtra("lesson_3", l); 
      } 
      startActivity(less); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
     } 

auffüllt} Hier finden Sie spin.xml die benutzerdefinierte Ansicht für Spinner

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/testing" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="top" 
android:singleLine="true" 
android:textSize="20sp" 
android:typeface="sans" 
android:textStyle="bold" 
android:textColor="@android:color/white" 
android:background="@android:color/black"/> 

im folgenden ist der Adapter die Ansicht in der spinner

import android.content.Context; 
import android.text.Layout; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.TextView; 

import java.util.ArrayList; 


public class Adapter extends ArrayAdapter<String> { 
Context c; 
ArrayList<String> list; 
public Adapter(Context context, int resource, ArrayList<String> list) { 
    super(context,R.layout.spin, list); 
    this.c=context; 
    this.list=list; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView==null) 
    { 
     LayoutInflater inf =(LayoutInflater)   c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView=inf.inflate(R.layout.spin,null);} 
    TextView a =(TextView)convertView.findViewById(R.id.testing); 
    a.setText(list.get(position)); 
    return convertView; 
} 

@Override 
public View getDropDownView(int position, View convertView, ViewGroup parent) { 
    if(convertView==null) 
    { 
     LayoutInflater inf =(LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView=inf.inflate(R.layout.spin,null);} 
    TextView a =(TextView)convertView.findViewById(R.id.testing); 
    a.setText(list.get(position)); 
    return convertView; 
} 
aufzublasen

}

Der Spinner zeigt anfangs keine Elemente an, aber beim Klicken. Artikel werden nicht ausgewählt. Beweis ist das makeToast funktioniert nicht. Bitte etwas vorschlagen.

Antwort

0

versuchen diese

allusers.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      // clicked item will be shown as spinner 
      Toast.makeText(getApplicationContext(),""+parent.getItemAtPosition(position).toString(),Toast.LENGTH_SHORT).show(); 
     } 
     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
     } 
}); 

hier finden: - http://coderzpassion.com/android-spinner-get-data-from-sqlite-database/

+0

Ich denke, das Problem liegt in dem GetView Verfahren in dem Adapter –