у меня были EditText, кнопка и счетчик. Когда нажмут кнопку, счетчик добавит новый объект с именем, которое Вы ввели в EditText. Но вот вопрос, мой adapter.add (), метод кажется, не работает..., вот мой код:
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) {
}});
}
}
спасибо!... все еще ожидание
Я считаю, что это работает так, как задумано, но не так, как ожидалось. Раньше ArrayAdapter принимал только массив, но конструктор списка был добавлен позже. Я предполагаю, что он просто выполняет toArray () в вашем списке. Вот почему вам нужно либо вызвать add на адаптере, либо создать новый адаптер, когда ваш список изменится.