【发布时间】:2020-12-30 18:47:19
【问题描述】:
[update] 我修正了我犯的错误。现在微调器可以动态更新。但是每次启动这个新activity时,spinner都是空的,再次创建activity时如何保留旧数据?
我有一个 EditView、一个按钮和一个微调器。当用户在 EditView 中键入一个不在微调器中的项目时,他们可以单击按钮添加到微调器中以节省时间。 我在 StackOverflow 和 google 中搜索了一些解决方案,但是单击按钮后,它仍然不起作用,数据仍然没有添加到微调器中。以下是部分代码:
purchasedProduct=(EditText)findViewById(R.id.purchasedP);
spinner=(Spinner)findViewById(R.id.spinner);
spinnerBtn=(Button)findViewById(R.id.purchasedDBtn);
items =new ArrayList<String>();
items.add("");
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinnerBtn.setOnClickListener(spinnerBtnListener);
spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
purchasedProduct.setText(adapterView.getSelectedItem().toString());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
private Button.OnClickListener spinnerBtnListener = new Button.OnClickListener(){
@Override
public void onClick(View view) {
String listItem = purchasedProduct.getText().toString();
//check if already there
for(int i = 0;i < adapter.getCount();i++)
{
if(listItem.equals(adapter.getItem(i)))
return;
}
//check if type in is empty
if(!listItem.equals(""))
{
adapter.clear();
items.add(listItem);
adapter.addAll(items);
adapter.notifyDataSetChanged();
}
}
};
谁能告诉我如何解决它?谢谢!
【问题讨论】:
标签: java android android-activity dynamic android-spinner