我的Android应用程序有自定义列表视图,如
这些数字是一个学生现在,现在,缺席或迟到的总天数。如果我按下任何重做按钮,现在我想要(假设当前按钮,那么现在的总数将为101,如果我迟到则总存在将是100和迟到的总数将是101)我的意思是我将在运行时更改文本。我怎么能这样做。我找到了这个
Redraw a single row in a listview
和
How can I update a single row in a ListView?
首先,目标vew必须从用户那里得到,我怎么能这样做,我不理解第二个
答案 0 :(得分:-1)
要更新单个列表项,您必须在指定位置获取视图,然后更新视图。
您可以使用以下方法获取list_item,
public View getViewByPosition(int position) {
final int firstListItemPosition = filesListview.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + filesListview.getChildCount() - 1;
if (position < firstListItemPosition || position > lastListItemPosition) {
// return filesListview.getAdapter().getView(position, filesListview.getChildAt(position), filesListview);
return null;
} else {
final int childIndex = position - firstListItemPosition;
return filesListview.getChildAt(childIndex);
}
}
如果给定位置的View在listview中可见,则上面的方法将返回视图,否则它将返回null。例如,如果列表视图包含20个元素,并且当前listview显示0-6个元素,那么上面的方法将返回0-6的视图,其他将返回null。
View viewByPosition = getViewByPosition(position;
// If the retrived view is not null then udpate the view otherwise ignore.
if (viewByPosition != null) {
//Update the view
}