tôi có EditText, một nút và một spinner. Khi nhấp vào nút, trình quay sẽ thêm một mục mới có tên bạn đã nhập trong EditText. Nhưng đây là câu hỏi, adapter.add của tôi() phương pháp dường như không hoạt động ... ở đây là mã của tôi:cách thêm mục vào ArrayAdapter của 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) {
}});
}
}
cảm ơn! ... vẫn đang chờ
Bạn chắc chắn don' t cần gọi lại spinner.setAdapter() trong View.OnClickListener của bạn. Mã của bạn trông giống như nó sẽ làm việc, mặc dù. – synic
Bạn cũng không cần phải gọi 'notifyDataSetChanged()'. Chỉ cần 'adapter.add()' là đủ. Khi bạn nói "không hoạt động", ý bạn là gì? – CommonsWare
tôi đã tìm ra câu trả lời, và ai đó nói với tôi, gọi notifyDataSetChanged() và setAdapter() một lần nữa có thể được trợ giúp. Tôi thêm nó, nhưng nó vẫn không hoạt động ... khi tôi chạy nó, và nhấn nút .it sẽ nhảy ra một lỗi: ứng dụng đã ngừng un expectedly.please thử lại ... (tôi nghĩ rằng vấn đề là trên phương pháp spinner.add().) cảm ơn sự giúp đỡ của bạn! – allen