2013-03-13 91 views
0

我有一个列表视图,每行包含一个TextViewEditText。 同时点击EditText框软键盘变为打开,我输入值。 之后,当按下按钮关闭键盘板时,我的列表视图被刷新,并且所有在EditText中输入的值也消失了。如何在listview刷新时保持listview中的文本框值?

请帮助我如何保持关键板关闭时的值?

if (ConvertViewP == null) { 
      LayoutInflater inflater = (LayoutInflater) mContextL.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      ConvertViewP = inflater.inflate(R.layout.add_cart_row_layout, ParentP, false); 
     } 

回答

0

我建议你,你使用SharedPreferences:

SharedPreferences

值写入到您的喜好通过退出该应用程序,并将它们写回,当您启动/进入您的应用程序。

作品真的很适合我。

+0

文本框本身的价值被删除,我将如何存储在共享首选项? – Vignesh 2013-03-13 13:34:34

+0

EditText有textWatchListener。只是尝试存储数据 – 2013-03-13 13:37:22

+0

我在代码中进行了更改,现在只在转换视图为空时im充气布局,因此文本现在可见,但值在关闭键盘时移动到某个其他行文本框中。在我的问题中看到我的代码... – Vignesh 2013-03-13 13:55:03

0

你可以把它全部放在一个变量中。例如。在ListActivity

Map<Integer, String> mHashMap = new HashMap<Integer, String>(); 

有一些HashMap中凡关键将列表项和值的位置文本 inputed到EditText由于在其上设置的监听器。 (Counting Chars in EditText Changed Listener)。 而在ListAdapter.getView(int position, View convertView, ViewGroup parent)中,您将使用mHashMap,如果有的话,将按位置获得值以设置为EditText

如果你想在屏幕方向的变化,保留值,你可以很容易地做到这一点的辩论,因为MapParcelable,可以同时输入值后,关闭键盘被添加到BundleSaving Android Activity state using Save Instance StateAndroid HashMap in Bundle?