在onCreate()方法中格式化ListView内容(获取ListView子项)

时间:2011-03-18 22:01:05

标签: android listview formatting views listactivity

我正在使用从数据库填充的ListActivity。

根据记录中存储的信息,我想格式化listView中的行。例如,我有一个boolean coulmn,它指定当前条目是否已“标记为”,如果是,那么我想在列表行中的一个textViews上设置删除格式标记。

我认为我可以这样做的方法是从ListActivity获取ListView,然后使用getChildAt()方法获取我想要更改的视图,然后根据需要对视图进行膨胀和格式化。但是在这一点上,对象中没有孩子,我找不到另一种获取个人观点的方法。

我现在正在尝试以下代码,但我试图通知的两个文本视图将返回null。代码在'ShoppingList'的内部类中,这是ListActivity,因此我调用getView()方法的方式可能有问题。

for (int i = 0; i < adapter.getCount(); i++)
             {
                 View thisView = adapter.getView(i, ShoppingList.this.getListView().getRootView(), ShoppingList.this.getListView());
                // inflate views
                TextView view_item_name = (TextView) thisView.findViewById(R.id.view_item_name);
                TextView view_item_checked = (TextView) thisView.findViewById(R.id.view_item_checked);
             }

1 个答案:

答案 0 :(得分:3)

这就是适配器的用途。 :)适配器的getView方法(或者如果您正在使用CursorAdapternewViewbindView),您应该为基于项目的视图设置格式关于在列表中显示之前呈现的数据。