【发布时间】:2019-11-08 16:25:30
【问题描述】:
我有 Recycler View,里面有很多项目。我想要做的是更改 TextView 中被点击的项目内的文本。我是这样做的:
wordList.set(position, newWord);
MyProgressActivityAdapter newAdapter = new MyProgressActivityAdapter(wordList, this);
newAdapter.notifyItemChanged(position);
recyclerView.setAdapter(newAdapter);
除了每次单击项目时屏幕都会转到顶部之外,一切正常。我该怎么做才能避免这种情况?
【问题讨论】:
-
这段代码在onItemClickListener里面吗?从代码来看,您似乎正在初始化一个新适配器……您可能不希望每次更改一个项目时都初始化一个全新的适配器。旧适配器上的
notifyItemChanged(position)应该是您需要做的所有事情。 -
你说得对,我改变了我的代码,但即使现在每次我点击单个项目时屏幕都会跳到顶部。
-
您可以尝试在 UI 线程上运行,如此答案所示:stackoverflow.com/a/17696214/1421014