Android 如何保存自定义ListView条目?

Android 如何保存自定义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时,需要传递此持久列表 用

在FragmentStatePager中有两个EditText和一个ListView。一切正常,但我使用EditText字段在ListView中创建的条目将被添加,但当我单击“上一步”时,它们将不会被保存。怎样才能拯救他们

onCreateView

CustomListViewAdapter和rowitem2


我真的不知道,你点击后退是什么意思。但您可以使用参数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;
            }


        }