Android 为什么我的ArrayList不';不要存储我的编辑文本条目,而只是显示它们

Android 为什么我的ArrayList不';不要存储我的编辑文本条目,而只是显示它们,android,android-listview,arraylist,android-edittext,Android,Android Listview,Arraylist,Android Edittext,我有一个FragmentStatePager,其中有两个EditText和一个自定义ListView。 用户可以进行两次输入并单击按钮,它们将被添加到列表视图,但不会存储在列表视图中。列表视图包含一个数组列表 我希望EditText的输入将存储在该ArrayList中 有人能写下怎么做吗 我的onCreateView @覆盖 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 视图组根视图=(视图组)充气器。充气( R.layout.sw

我有一个
FragmentStatePager
,其中有两个
EditText
和一个自定义
ListView
。 用户可以进行两次输入并单击
按钮
,它们将被添加到
列表视图
,但不会存储在
列表视图
中。
列表视图
包含一个
数组列表

我希望
EditText
的输入将存储在该
ArrayList

有人能写下怎么做吗


我的onCreateView

@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图组根视图=(视图组)充气器。充气(
R.layout.swipeview,容器,假);
txtTitel=(TextView)rootView.findViewById(R.id.swipeviewtitle);
//捕获位置并设置为文本视图
txtitel.setText(titel[位置]);
//在viewpager_item.xml中找到ImageView
image=(ImageView)rootView.findViewById(R.id.swipeViewimage);
//捕获位置并设置为ImageView
字符串标题=titel[位置];
整数imageRes=TITLE\u IMAGES.get(TITLE);
如果(imageRes==null){//在映射中找不到
image.setImageResource(0);
}否则{
image.setImageResource(imageRes);
}
最终ListView ListView=(ListView)rootView.findViewById(R.id.listViewswipeview);
最终EditText wdhedittext=(EditText)rootView.findViewById(R.id.editTextswipeView);
final EditText kgedittext=(EditText)rootView.findViewById(R.id.editText2);
最终按钮btnswipeview=(按钮)rootView.findViewById(R.id.imagebuttonswipeview);
adapter2=新的CustomListViewAdapter2(getActivity(),
R.layout.swipeviewrowitem,rowItems);
setAdapter(适配器2);
btnswipeview.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
if(wdhedittext.getText().toString().matches(“”){
Toast Toast=Toast.makeText(getActivity(),
“比特·维德隆斯扎尔·安格本”,
烤面包片(长/短);
toast.show();
}else if(kgedittext.getText().toString().matches(“”)匹配{
final rowitem2 item=新的rowitem2(wdhedittext.getText().toString()+“wdh”,kgedittext.getText().toString());
适配器2.添加(项目);
行项目。添加(项目);
}否则{
最后一行项目2=新的行项目2(wdhedittext.getText().toString()+“wdh”,kgedittext.getText().toString()+“kg”);
适配器2.添加(项目);
行项目。添加(项目);
/*字符串名称=wdhedittext.getText().toString();
int rowId=workoutDBAO2.addWorkout2(名称);
HashMap rowValsSets=新HashMap();
rowValsSets.put(“集合”,名称);
rowValsSets.put(“id”,rowId);
适配器3.添加(行集)*/
}
}
});
rowItems=新的ArrayList();
返回rootView;
}
CustomListViewAdapter2和rowitem2类

类CustomListViewAdapter2扩展了ArrayAdapter{
私人最终ArrayList项目;
语境;
公共CustomListViewAdapter2(上下文上下文,int resourceId,
ArrayList项目){
超级(上下文、资源ID、项目);
this.context=上下文;
这个。项目=项目;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
rowitem2 rowItem=items.get(位置);
LayoutInflater mInflater=(LayoutInflater)上下文
.getSystemService(活动.布局\充气机\服务);
View=mInflater.inflate(R.layout.swipeviewrowitem,空);
TextView txtTitle=(TextView)view.findViewById(R.id.mainText2);
TextView txtDesc=(TextView)view.findViewById(R.id.textView2);
setText(rowItem.getDesc());
setText(rowItem.getTitle());
返回视图;
}
@凌驾
公共布尔值areAllItemsEnabled(){
返回true;
}
}
}
类别行项目2{
私有字符串edittexttitle;
私有字符串edittexttitle2;
公共行项目2(字符串标题、字符串描述){
this.edittexttitle=标题;
this.edittexttitle2=desc;
}
公共字符串getTitle(){
返回edittexttitle;
}
公共字符串getDesc(){
返回edittexttitle2;
}
公共无效集合标题(字符串标题){
this.edittexttitle=标题;
}
@凌驾
公共字符串toString(){
返回edittexttitle+“\n”+edittexttitle2;
}
}

dapter2.添加项后的notifyDataSetChanged()将完成此工作。

您不能在
数组列表中保留任何数据。如果要永久存储它们,应使用
SQLite数据库
SharedReferences

这是一个关于如何使用SQLite数据库解决问题的好例子。如果您计划存储和管理大量数据,这将非常有用

如果您不打算存储大量数据,那么使用
SharedReferences
将是一个不错的选择。例如:

//Store a String in SharedPreferences 
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("your_key", your_string_variable);
无论何时您想要检索它(例如,
onResume
onCreate


可以找到有关SharedReference的更多信息。

当列表更改时,您需要在适配器上调用
notifyDataSetChanged()
,但不会更改任何内容。
class CustomListViewAdapter2 extends ArrayAdapter<rowitem2> {


        private final ArrayList<rowitem2> items;
        Context context;

        public CustomListViewAdapter2(Context context, int resourceId,
                                      ArrayList<rowitem2> items) {
            super(context, resourceId, items);
            this.context = context;
            this.items=items;
        }



        public View getView(int position, View convertView, ViewGroup parent) {
            rowitem2 rowItem = items.get(position);

            LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                View view = mInflater.inflate(R.layout.swipeviewrowitem, null);
                TextView txtTitle = (TextView) view.findViewById(R.id.mainText2);
                TextView txtDesc = (TextView) view.findViewById(R.id.textView2);

            txtDesc.setText(rowItem.getDesc());
            txtTitle.setText(rowItem.getTitle());


            return view;
        }
        @Override
        public boolean areAllItemsEnabled() {
            return true;
        }

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


    }
//Store a String in SharedPreferences 
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("your_key", your_string_variable);
 // Restore preferences
 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
 String your_string_variable = settings.getString("your_key", "default_value");