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");