tenía un EditText, un botón y un spinner. Al hacer clic en el botón, la ruleta agregará un nuevo elemento con el nombre que ingresó en EditText. Pero aquí está la pregunta, mi adapter.add() método parece que no funciona ... aquí está mi código:cómo agregar un elemento al ArrayAdapter de Spinner?
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) {
}});
}
}
gracias! ... aún esperando
Definitivamente don' Necesito volver a llamar a spinner.setAdapter() en su View.OnClickListener. Sin embargo, su código parece que debería funcionar. – synic
Tampoco necesita llamar a 'notifyDataSetChanged()'. Solo 'adapter.add()' debería ser suficiente. Cuando dices "no funciona", ¿qué quieres decir? – CommonsWare
busqué la respuesta, y alguien me dice, llame a notifyDataSetChanged() y setAdapter() otra vez podría ser help.so lo agrego, pero todavía no funciona ... cuando lo ejecuto, y haga clic en el botón. saltará un error: la aplicación se detuvo de forma inesperada. Por favor intente de nuevo ... (creo que el problema está en el método spinner.add()). ¡Gracias por su ayuda! – allen