【发布时间】:2016-03-20 16:28:36
【问题描述】:
我正在尝试将一个项目插入到多个 Spinner 正在使用的适配器中。但是,当我插入适配器时,我希望 Spinners 根据对象而不是位置保留其原始选择。
在下面的例子中,微调器最初选择“四”,但是当我单击按钮插入“三”时,微调器现在设置为“三”,而不是更新到“四”的新位置。我怎样才能做到这一点?
public class MyActivity extends Activity {
List list;
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner spinner = (Spinner) findViewById(R.id.spinner1);
list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("four");
adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, list);
spinner.setAdapter(adapter);
// set selection to "four"
spinner.setSelection(2);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//list.add(2, "three") causes the same problem
adapter.insert("three", 2);
adapter.notifyDataSetChanged();
}
});
}
【问题讨论】:
标签: android arraylist view spinner android-arrayadapter