如何保存自定义ListView条目?

问题描述 投票:0回答:3

我在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();
                    }




            }
        });

CustomListViewAdapterrowitem2

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;
            }


        }
android listview android-listview android-edittext fragmentstatepageradapter
3个回答
0
投票

我真的不知道,您点击回来意味着什么。但是,您可以使用参数rowItems创建适配器。您可以在此处添加项目并访问它们。这是您要保存的列表,当您再次创建ListView时,需要传递此持久列表。

您用于保存数据的方法取决于生命周期。如果它仍然存在,那么下次启动应用程序时。您可以使用sqlite保存行项目,然后在启动应用程序时从该数据库创建列表。如果您只想返回到FragmentActivity中,则可以保留对该列表的引用,并在每次重新创建它时将其传递给适配器。


0
投票

为了保存您的EditText更改,您将需要在返回阶段使用某种类型的保存。

您可以通过3种方式保存数据:SQL-Lite,将数据写入File,我最喜欢的数据保存在SharedPreferences上。

您需要做的就是创建一个字符串列表,该列表将使用所有EditText并将其保存到SharedPreferences中。

请阅读有关here的更多信息

您的活动具有生命Lifecycle,因此当您退出活动时,所有数据将被删除。

祝你好运!


0
投票

您问题的基本解决方案是SQLite。在您的项目中实现Sqlite,就可以从列表视图中获取数据/从中获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.