如何从ListView显示/隐藏TextView

时间:2018-01-22 15:53:37

标签: android listview onitemclicklistener

我有一个ListView,其中的项目具有相同的视图来显示一些数据,我有一个OnItemClickListener,当我点击一个项目时,它会显示一个TextView(以前隐藏)作为可扩展文本。

问题


如果我单击第一个项目并开始向下滚动,其他项目(随机)显示扩展的TextView,我只想显示我点击的项目的当前TextView。

有人能给我一个正确的线索吗?

非常感谢

我的代码:

@Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
           TextView expandedText = (TextView)view.findViewById(R.id.txtExpanded)
           if(expandedText.getVisibility()==View.VISIBLE){
              expandedText.setVisibility(View.GONE)
           }else{
              expandedText.setVisibility(View.VISIBLE)}
        }

1 个答案:

答案 0 :(得分:1)

如果没有看到您的实际适配器,我想这是因为您正在使用视图。由于视图持有者回收小部件并重置数据,因此每次用于显示单击的单元格的持有者都被回收时,使用&#34;单击&#34;显示新数据。逻辑应用。所以,&#34;重置&#34;小部件到基本状态并跟踪哪些&#34;数据&#34;已被点击,理想情况下是在数据对象本身内部。最好创建一个视图组来处理所有小部件和显示/隐藏字段的逻辑,而不是将它们设置到适配器中。