Ich hatte einen EditText, eine Schaltfläche und einen Spinner. Wenn Sie auf die Schaltfläche klicken, fügt der Drehfeld einen neuen Eintrag mit dem Namen hinzu, den Sie in EditText eingegeben haben. Aber hier ist die Frage, meine adapter.add() Methode scheint nicht funktioniert ... hier ist mein Code:Wie fügt man Artikel zu Spinner's ArrayAdapter hinzu?
public class Spr extends Activity {
Button bt1;
EditText et;
ArrayAdapter<CharSequence> adapter;
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt1 = (Button)this.findViewById(R.id.bt1);
et = (EditText)this.findViewById(R.id.et);
spinner = (Spinner)this.findViewById(R.id.spr);
adapter = ArrayAdapter.createFromResource(
this, R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String temp = et.getText().toString();
adapter.add(temp);
adapter.notifyDataSetChanged();
spinner.setAdapter(adapter);
}
});
spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
Toast.makeText(parent.getContext(), "The planet is " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}});
}
}
Dank! ... immer noch
Sie don auf jeden Fall‘ t müssen Sie spinner.setAdapter() erneut in Ihrem View.OnClickListener aufrufen. Ihr Code sieht aus wie es sollte funktionieren. – synic
Sie müssen auch 'notifyDataSetChanged()' nicht aufrufen. Nur 'adapter.add()' sollte ausreichen. Wenn du sagst "geht nicht", was meinst du? – CommonsWare
Ich suchte die Antwort, und jemand sagt mir, call notifyDataSetChanged() und setAdapter() wieder könnte help.so ich füge es hinzu, aber es funktioniert immer noch nicht ... wenn ich es ausführen, und klicken Sie auf die Schaltfläche .it wird einen Fehler ausgeben: Die Anwendung wurde unerwartet beendet. Bitte versuchen Sie es erneut ... (Ich denke, das Problem ist auf die Methode spinner.add().) Danke für Ihre Hilfe! – allen