Android 我将textview的可见性设置为在ListView的getView()中可见-它在接下来的行中也保持可见。如何解决这个问题?

Android 我将textview的可见性设置为在ListView的getView()中可见-它在接下来的行中也保持可见。如何解决这个问题?,android,listview,android-listview,android-arrayadapter,adapter,Android,Listview,Android Listview,Android Arrayadapter,Adapter,在我的列表视图的每一行中,我想要一个文本视图(它最初是在XML中提供的android:visibility=“gone”),只有在满足条件时才可见 所以我做了如下的伪代码 @Override public View getView(int position, View convertView, ViewGroup parent) { View view; if (convertView == null) { view = layoutInflater.infla

在我的
列表视图
的每一行中,我想要一个
文本视图
(它最初是在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”)
条件在一行中得到满足,则
textview
可见性设置为
View.VISIBLE
它在下一行也保持可见。


问题是如何在将
文本视图设置为
视图后重置其可见性。对于下一行,该行的布局将被回收,可见的
,这样将
文本视图重置为可见的
将不会反映在当前行中,但是对于将使用同一行布局的下一行不可见?

您可以只放置
textView.setVisibility(View.GONE)位于函数顶部。这将迫使所有textView始终消失,直到它们满足条件。

只需按照注释中的建议添加一个else部分,并将
textView
初始化移到if块之外即可-

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);
} 

简单地添加一个
else
子句,将可见性设置为
GONE