ho avuto un EditText, un pulsante e uno spinner. Quando fai clic sul pulsante, lo spinner aggiungerà un nuovo oggetto con il nome inserito in EditText. Ma ecco la domanda, il mio adapter.add() metodo sembra non funziona ... qui è il mio codice:come aggiungere elementi a Spinner's ArrayAdapter?
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) {
}});
}
}
grazie! ... ancora in attesa
È sicuramente don' t necessario chiamare nuovamente spinner.setAdapter() in View.OnClickListener. Il tuo codice sembra che dovrebbe funzionare, però. – synic
Inoltre non è necessario chiamare 'notifyDataSetChanged()'. Giusto 'adapter.add()' dovrebbe essere sufficiente. Quando dici "non funziona", cosa intendi? – CommonsWare
ho risposto alla domanda, e qualcuno mi dice, chiama notifyDataSetChanged() e setAdapter() potrebbe essere di nuovo help.so lo aggiungo, ma non funziona ancora ... quando lo eseguo, e clicco sul pulsante .it salterà fuori un errore: l'applicazione si è fermata inaspettatamente. Si prega di riprovare ... (penso che il problema sia nel metodo spinner.add().) grazie per il vostro aiuto! – allen