我有一個EditText,一個按鈕和一個微調器。點擊按鈕時,微調器將添加一個新的項目,並在EditText中輸入您輸入的名稱。但這裏是一個問題,我的adapter.add()方法似乎不起作用......這裏是我的代碼:如何將項目添加到Spinner的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) {
}});
}
}
的感謝! ...仍在等待
你一定不要」您需要再次在您的View.OnClickListener中調用spinner.setAdapter()。 雖然你的代碼看起來應該可以工作。 – synic 2010-03-24 04:46:22
你也不需要調用'notifyDataSetChanged()'。只需'adapter.add()'就足夠了。當你說「不起作用」時,你是什麼意思? – CommonsWare 2010-03-24 11:51:50
我找到了答案,有人告訴我,再次調用notifyDataSetChanged()和setAdapter()可以幫助。所以我添加它,但它仍然不起作用...當我運行它,然後單擊按鈕。會跳出一個錯誤:應用程序已經停止不期望。請再試一次...(我認爲問題是在方法spinner.add()。)感謝您的幫助! – allen 2010-03-25 01:20:30