2011-04-06 102 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);