2013-09-24 62 views
0

我設置一個快捷菜單出現在短按我在ListView的右鍵菜單問題

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    menu.setHeaderTitle("Pick an action"); 
    theView = v; 
    TextView desc = (TextView) theView.findViewById(R.id.class_description); 
    String description = (String) desc.getText(); 
    TextView id = (TextView) v.findViewById(R.id.class_id); 
    Integer ID = Integer.valueOf(String.valueOf(id.getText())); 
    menu.add(1, ID, 0, getString(R.string.add_to_calender)); 
    menu.add(2, ID, 0, getString(R.string.subscribe_alterations)); 
    assert description != null; 
    if (!description.equals("")) { 
     menu.add(3, ID, 0, getString(R.string.view_description)); 
    } 
    menu.add(4, ID, 0, getString(R.string.view_alterations)); 
} 

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

     Toast.makeText(getSherlockActivity(), "Clicked", Toast.LENGTH_SHORT).show(); 
     registerForContextMenu(view); 
     view.setLongClickable(false); 
     getSherlockActivity().openContextMenu(view); 
    } 
}); 

單擊一個項目在列表視圖我適配器我有這條線是什麼切換的知名度一個按鈕

holder.alter.setVisibility(View.VISIBLE); 
if ((position % 2) == 0) { 
    holder.alter.setVisibility(View.INVISIBLE); 
} 

這裏的按鈕

<Button 
    android:layout_width="20dp" 
    android:layout_height="wrap_content" 

    android:background="@drawable/alterations_btn" 
    android:textColor="@color/white" 
    android:layout_alignParentLeft="true" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textStyle="bold" 
    android:layout_marginRight="@dimen/padding_small" 

    android:id="@+id/is_alt" 
    android:layout_centerInParent="true" 
    android:text="@string/exclamation_point"/> 

當按鈕是不可見的上下文菜單中的作品,但是當它上的A isible事實並非如此。

任何人都可以看到爲什麼?

回答

1

你應該記住的第一件事就是,每當有像你的ListView元素按鈕或鏈接點擊元素,他們採取的click事件的控制。所以你的ListView不會得到接受click事件的機會。

你可以做的是,你在你的ListView,看看有沒有幫助按鈕可獲得焦點屬性設置爲false。

+0

完美:)。謝謝你的幫助。 –