我在EditText
中有两个ListView
和一个FragmentStatePager
。一切正常,但我在EditText
字段中输入ListView
的条目将被添加,但是当我单击“返回”时,它们将不会被保存。如何保存它们?
onCreateView
final CustomListViewAdapter2 adapter2 = new CustomListViewAdapter2(getActivity(),
R.layout.swipeviewrowitem, rowItems);
listView.setAdapter(adapter2);
btnswipeview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View View) {
if(wdhedittext.getText().toString().matches("")) {
Toast toast = Toast.makeText(getActivity(),
"Bitte Wiederholungszahl angeben",
Toast.LENGTH_SHORT);
toast.show();
}
else if (kgedittext.getText().toString().matches("")) {
rowitem2 item = new rowitem2(wdhedittext.getText().toString() + "wdh", kgedittext.getText().toString());
adapter2.add(item);
adapter2.notifyDataSetChanged();
}
else{
rowitem2 item = new rowitem2(wdhedittext.getText().toString() + "wdh", kgedittext.getText().toString() + "kg");
adapter2.add(item);
adapter2.notifyDataSetChanged();
}
}
});
CustomListViewAdapter和rowitem2
class CustomListViewAdapter2 extends ArrayAdapter<rowitem2> {
Context context;
public CustomListViewAdapter2(Context context, int resourceId,
List<rowitem2> items) {
super(context, resourceId, items);
this.context = context;
}
private class ViewHolder {
TextView txtTitle;
TextView txtDesc;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
rowitem2 rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.swipeviewrowitem, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView.findViewById(R.id.mainText);
holder.txtDesc = (TextView) convertView.findViewById(R.id.textView2);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtDesc.setText(rowItem.getDesc());
holder.txtTitle.setText(rowItem.getTitle());
return convertView;
}
}
class rowitem2{
private String edittexttitle;
private String edittexttitle2;
public rowitem2( String title, String desc) {
this.edittexttitle = title;
this.edittexttitle2 = desc;
}
public String getTitle() {
return edittexttitle;
}
public String getDesc() {
return edittexttitle2;
}
public void setTitle(String title) {
this.edittexttitle = title;
}
@Override
public String toString() {
return edittexttitle + "\n" + edittexttitle2;
}
}
我真的不知道,您点击回来意味着什么。但是,您可以使用参数rowItems
创建适配器。您可以在此处添加项目并访问它们。这是您要保存的列表,当您再次创建ListView时,需要传递此持久列表。
您用于保存数据的方法取决于生命周期。如果它仍然存在,那么下次启动应用程序时。您可以使用sqlite保存行项目,然后在启动应用程序时从该数据库创建列表。如果您只想返回到FragmentActivity中,则可以保留对该列表的引用,并在每次重新创建它时将其传递给适配器。
您问题的基本解决方案是SQLite。在您的项目中实现Sqlite,就可以从列表视图中获取数据/从中获取数据。