Android 如何保存自定义ListView条目?
在FragmentStatePager中有两个EditText和一个ListView。一切正常,但我使用EditText字段在ListView中创建的条目将被添加,但当我单击“上一步”时,它们将不会被保存。怎样才能拯救他们 onCreateView CustomListViewAdapter和rowitem2Android 如何保存自定义ListView条目?,android,listview,android-listview,android-edittext,fragmentstatepageradapter,Android,Listview,Android Listview,Android Edittext,Fragmentstatepageradapter,在FragmentStatePager中有两个EditText和一个ListView。一切正常,但我使用EditText字段在ListView中创建的条目将被添加,但当我单击“上一步”时,它们将不会被保存。怎样才能拯救他们 onCreateView CustomListViewAdapter和rowitem2 我真的不知道,你点击后退是什么意思。但您可以使用参数rowItems创建适配器。您可以在那里添加项目并访问它们。这是您希望保存的列表,当您再次创建ListView时,需要传递此持久列表 用
我真的不知道,你点击后退是什么意思。但您可以使用参数rowItems创建适配器。您可以在那里添加项目并访问它们。这是您希望保存的列表,当您再次创建ListView时,需要传递此持久列表 用于保存数据的方法取决于生命周期。如果它仍然存在,下次启动应用程序时。您可以使用sqlite保存行项目,并且在启动应用程序时,可以从该数据库创建列表。
如果您只想回到FragmentActivity中,您可以保留对该列表的引用,并在再次创建时将其传递给适配器。为了保存EditText更改,您需要在返回阶段使用某种形式的保存 您可以用3种方式保存数据:SQLLite、将数据写入文件和我最喜欢的在SharedReferences上保存数据 您所需要做的就是创建一个字符串列表,该列表将包含所有EditText并将其保存到SharedReferences中 请阅读更多关于 您的活动具有生命周期,因此当您退出活动时,所有数据都将被删除
祝你好运 您的问题的基本解决方案是SQLite。在您的项目中实现Sqlite,您就可以从listview获取/检索数据。我怎么做?什么?使用sqlite保存数据?否保留对列表的引用并将其传递给我的适配器。您将获得类似“ArrayList rowItems=new ArrayList”的内容。您需要将此列表添加到主活动类中。例如,在onCreate方法中创建它。你得到你想要的答案了吗?没有。
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();
}
}
});
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;
}
}