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
。