如何解决如何动态地将数据添加到微调器?每次创建活动时,请保留微调器数据安卓
[更新] 我纠正了我犯的错误。现在微调框可以动态更新。但是,每次启动此新活动时,微调框将为空,当再次创建该活动时,如何保留旧数据?
我有一个EditView,一个Button和一个微调器。当用户在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();
}
}
};
谁能告诉我如何解决?谢谢!
解决方法
您需要在SQLite数据库中存储新数据。在开始活动时,您仅从数据库中获取数据。数据库中的所有数据均保存在设备上。了解如何在Android Studio中使用SQLite。
您还可以尝试将数据存储在XML JSON或文本文件中,但这不是一个好主意。
,您可以使用Room Persistence Library
,Look Here for details。
此库可帮助您在运行应用程序的设备上创建应用程序数据的缓存。此缓存充当您应用程序的单一事实来源,无论用户是否有Internet连接,都允许用户查看应用程序中关键信息的一致副本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。