2011-07-25 32 views
0

我正在构建一个应用程序来执行其中的清单。在这是希望有一个简单的列表视图,但与可编辑编辑文本中。我可以用初始值填充列表。当我在编辑文本中输入文本时,getview之间的某处被适配器调用,列表视图刷新自己。我尝试了一下我在哪里更新数据源,以及何时在编辑文本中输入内容。现在即使刷新后,该值也会保存。但问题是,我不断输入文本,并在列表刷新之间,我放松了编辑文本的焦点。请让我知道如何处理这个问题。感谢您提供任何形式的帮助和建议。要在Android列表视图中执行检查列表吗?

回答

2

您将需要跟踪列表的状态。我通过扩展适配器并在适配器中保留所有视图的HashMap来实现这一点。在我的ListView中,在onSaveInstanceState中,我将得到我的适配器并迭代所有视图 - 对于每个视图,我会调用onSaveInstanceState并将结果存储在适配器的散列映射中。然后,在onRestoreInstanceState期间,我将迭代所有视图并调用它们的onRestoreInstanceState方法,并将它们传递给我保存的状态。

这将导致这两个解决您的数据和焦点问题...

祝你好运 - 快乐编码。

+0

谢谢你的帮助。开始使用带有列表视图控件的Activity类或者以ListActivity作为此列表的开始是否好?请让我知道你的想法。谢谢。 – Vinodtiru

+0

我认为这取决于你的设计目标和时间限制。 ListActivity的写入速​​度比ListView快很多,但是,如果需要,您可以在其他活动中多次使用您的ListView。如果使用ListActivity创建列表,它将缺乏可重用性,但会更快完成。我通常在灵活性方面犯错,但这就是为什么我的所有代码都需要更长的时间,而且我经常被指责过度工程:) – Brian

3

可以这样做

ListView lw= (ListView) findViewById(R.id.ListView01); 
lw.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked ,value));