android - 我在 ListView 的 getView() 中将 textview 的 VISIBILITY 设置为 VISIBLE - 它对于下一行也保持可见。怎么解决这个问题呢?

标签 android listview android-listview android-arrayadapter adapter

在我的 ListView 的每一行中,我想要一个 TextView (最初在 XML 中给出 android:visibility="gone")仅当满足条件时才可见。

所以我做了类似下面的伪代码的事情。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view;

    if (convertView == null) {
        view = layoutInflater.inflate(R.layout.row_item, parent, false);
    } else {
        view = convertView;
    }
    ...
   if (ape.getAlpha() != null && ape.getAlpha().equals("RON") ) {
        TextView textView = (TextView) view.findViewById(R.id.Item_textView5);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView.setBackgroundColor(Color.CYAN);
            }
        });
        textView.setVisibility(View.VISIBLE);
    } 
    ...
}

现在,由于每一行都被回收并且再次调用 getView(),一旦 (ape.getAlpha() != null && ape.getAlpha().equals ("RON")) 条件连续满足,因此 textviewvisibility 设置为 View.VISIBLE >,它对于下一行仍然可见。

问题是,在将其设置为 View.VISIBLE 后,如何重置该行布局的下一行的 textview 的可见性被回收,以便将可见性重置为gone不会反射(reflect)在当前行中,但对于将使用同一行布局的下一行不可见?

最佳答案

只需按照注释中的建议添加 else 部分,并将 textView 初始化移动到 if block 之外,如下所示:

TextView textView = (TextView) view.findViewById(R.id.Item_textView5);
if (ape.getAlpha() != null && ape.getAlpha().equals("RON") ) {
    textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView.setBackgroundColor(Color.CYAN);
        }
    });
    textView.setVisibility(View.VISIBLE);
}else{
    textView.setVisibility(View.GONE);
} 

关于android - 我在 ListView 的 getView() 中将 textview 的 VISIBILITY 设置为 VISIBLE - 它对于下一行也保持可见。怎么解决这个问题呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775917/

相关文章:

android - 将数据从内存馈送到 MediaPlayer

android - 具有多个待定 Intent 的 ListView 小部件

android - 如何防止在 Android M 或更高版本的运行时更改权限时重新创建 Activity

android - 限制可在 android EditText View 中输入的字数的好方法是什么?

mysql - 来自sql : object required的listview vb6

android - 将焦点放在android中 ListView 的任何项目上

android - 当适配器包含带有 onClickListener 的按钮时,OnItemClickListener 无法正常工作

android - 如何在android中使用快速滚动?

android - 如果每个 ListView 有多个 TextView ,如何设置适配器?

java - 如何向 api 发出 POST 请求