更新ListView中的单行?

时间:2015-06-25 07:41:09

标签: android listview

我的Android应用程序有自定义列表视图,如

enter image description here

这些数字是一个学生现在,现在,缺席或迟到的总天数。如果我按下任何重做按钮,现在我想要(假设当前按钮,那么现在的总数将为101,如果我迟到则总存在将是100和迟到的总数将是101)我的意思是我将在运行时更改文本。我怎么能这样做。我找到了这个

Redraw a single row in a listview

How can I update a single row in a ListView?

首先,目标vew必须从用户那里得到,我怎么能这样做,我不理解第二个

1 个答案:

答案 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
        }