2011-10-20 43 views
4

我想在一個listview行中設置視圖的所有屬性,這些屬性會對點擊作出反應(可以是簡單的按下,長按或其他任何操作)。我試圖將父級和子級視圖的.setFocusable,.setFocusableInTouchMode,.setLongClickable,.setClickable,.setPressed,.setSelected,.setHapticFeedbackEnabled屬性設置爲false,但它沒有幫助。android:如何禁用一個視圖上的所有點擊

我通過點擊按鈕在列表視圖的兩個狀態之間切換。當我切換到第二個狀態時,我想禁用所有行上的點擊。我正在用不同的自定義cursoradapters填充listview的每個狀態。下面的代碼片段是我的第二狀態,第二的CursorAdapter:

@Override 
public void bindView(View view, Context context, Cursor cursor) { 
    RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.title_rows_relativelayout); 
    TextView lists_text = (TextView) view.findViewById(R.id.list_title_text); 
    lists_text.setText(cursor.getString(cursor.getColumnIndex(ListsDbAdapter.TITLE))); 
    lists_text.setBackgroundResource(R.drawable.background_for_rows); 
    parent.setBackgroundResource(R.drawable.background_for_rows); 

    view.setFocusable(false); 
    view.setFocusableInTouchMode(false); 
    view.setHapticFeedbackEnabled(false); 
    view.setLongClickable(false); 
    view.setClickable(false); 
    view.setPressed(false); 
    view.setSelected(false); 

    parent.setFocusable(false); 
    parent.setFocusableInTouchMode(false); 
    parent.setHapticFeedbackEnabled(false); 
    parent.setLongClickable(false); 
    parent.setClickable(false); 
    parent.setPressed(false); 
    parent.setSelected(false); 

    lists_text.setFocusable(false); 
    lists_text.setFocusableInTouchMode(false); 
    lists_text.setHapticFeedbackEnabled(false); 
    lists_text.setLongClickable(false); 
    lists_text.setClickable(false); 
    lists_text.setPressed(false); 
    lists_text.setSelected(false); 
} 

預先感謝您。

+0

你可以發佈一個代碼示例,演示你說過你試過的東西嗎? –

+0

我剛加入。抱歉,添加代碼需要一段時間,因爲我使用其他計算機進行編程,而使用其他計算機訪問互聯網。 –

回答

1

如果我正確理解你,你不應該需要兩個適配器。你可以只用一個,並添加和onClickListener以禁用像這樣一切的觀點:

view.setOnClickListener(new View.onClickListener(){ 
    public void onClick(View view){ 
    //do all your code for disabling stuff in here 
    } 
}); 

也許這樣做的,不必適配器將幫助您之間切換。

+0

但是,當我試圖改變視圖的其他屬性(如背景或文本)它的作品。即使將它們設置爲xml代碼,我也無法禁用點擊。你認爲我的Eclipse可能有什麼問題嗎?因爲我開始這麼想。 –

+0

順便說一句我使用一個單獨的按鈕來切換兩種狀態;它在主視圖的底部。它不在行中;我想這就是爲什麼我必須使用兩個cursoradapters。 –

+0

然後啊有道理。然後就忽略這個答案。我懷疑問題是與日食。 –

7

我有類似的問題。

setEnabled(false) 

..幫我找了份工作。

相關問題