2013-07-11 39 views
0

我有一個列表視圖和一個自定義適配器。它的工作原理都很完美,但現在我想添加一些非可點擊標籤,如果條件成立的話。但是如果條件爲真,它也應該顯示正常的列表項目。這是我的問題,我不知道如何添加標籤,然後是正常的項目。Android ListView:添加不可點擊的標籤

我是一個初學者,我嘗試了很多,但我沒有得到它。

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView; 
    if (position == 3){ 
     rowView = inflater.inflate(R.layout.event_date, parent, false); 
     TextView date = (TextView) rowView.findViewById(R.id.event_date); 
     // set text 
    } else { 
     rowView = inflater.inflate(R.layout.events_list, parent, false); 
     TextView title = (TextView) rowView.findViewById(R.id.event_title); 
     // set text 
    } 

    return rowView; 
} 

回答

2

BaseAdapter有一個名爲isEnabled()方法,您可以覆蓋。如果特定位置是可點擊的,您可以使用它來分配。

@Override 
public boolean isEnabled(int position) { 
    if (position == 3) { 
     return false; 
    } else { 
     return true; 
    } 
} 

您還需要聲明並非所有項目都使用areAllItemsEnabled()啓用。

@Override 
public boolean areAllItemsEnabled() { 
    return false; 
} 
+0

但是,另一個問題是,如果條件爲真,我想同時顯示標籤和普通項目。 – ijo

+0

對不起,我不太清楚你的意思? – jimmithy

0

如果你只需要在標籤,當滿足特定條件,你可以在XML的頁面創建一個標籤,並設置其能見度出現在列表旁邊。

Label a = findViewById(R.id.labela); a.setVisibility(View.GONE);

把這個在「if語句」你已經創建了控制標籤,並設置列表視圖來顯示你想要的價值,並使其可點擊或無法點擊相應。

lv.setEnabled(false);