2011-04-06 76 views
3

我有一个列表视图,其中包含列表中的每一行按钮。 基于一个字段,我想让这个按钮不可见。滚动listview导致按钮不可见

我在适配器内的getView方法如下所示。

public View getView(int position, View convertView, ViewGroup parent) { 
       // TODO Auto-generated method stub 

       Activity activity = (Activity) getContext(); 
       View view = convertView; 

       if (convertView == null) { 
        LayoutInflater inflater = activity.getLayoutInflater(); 
        view = inflater.inflate(R.layout.listrow, null); 
       } 

       final Details details = getItem(position); 
       Button btn = (Button) view.findViewById(R.id.btn); 

       if(details.check()) { 
        btn.setVisibility(View.INVISIBLE); 
       } 
    } 

当我加载此页时,数据正确。但是,当简单地滚动浏览这个列表时,这个按钮就变得不可见了。这是什么原因?当我删除if部分时,即使滚动,我也会得到所有行的按钮。 getView()内部invisible是否有问题?请回复。提前致谢。

回答

2

添加以下内容:

if(details.check()) { 
    btn.setVisibility(View.INVISIBLE); 
} 
else { 
    btn.setVisibility(View.VISIBLE); 
} 

和......那不如用

LayoutInflater.from(getContext()) 

,而不是activity.getLayoutInflater()

0

设置列表视图的可点击属性在XML或类似的错误:

getListView().setClickable(false);