2011-08-24 3 views
0

リスト位置のコンテキストメニューを表示するには、クリックして2番目のポジションを選択してください。ポジション "2"のコンテキストメニューを表示するリストビューのみをクリックするandroid

クリックした各位置のコンテキストメニューを表示するコードを実装しました。だからどのように特定の場所に具体化するListView。リストビュー..plsの各位置のためのコンテキストメニューを表示するための

私のコードは、私が唯一onCreateOptionsMenu()メソッドを参照することができ、あなたのコードでは...私のコードのおかげで

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.mainmenulist); 

    // registerForContextMenu(getListView()); 

    CustomAdapter adapter = new CustomAdapter(
     this, R.layout.listitem,R.id.title, data 
    ); 
    setListAdapter(adapter); 

    getListView().setTextFilterEnabled(true); 
} 

@Override 
public void onCreateContextMenu(ContextMenu menu, 
    View v,ContextMenuInfo menuInfo) 
{ 
    super.onCreateContextMenu(menu, v, menuInfo); 

    menu.setHeaderTitle("Context Menu"); 
    menu.add(0, v.getId(), 0, "Gallery"); 
    menu.add(0, v.getId(), 0, "Camera"); 
    menu.add(0, v.getId(), 0, "Cancel"); 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    if(item.getTitle()=="Gallery"){ 
     function1(item.getItemId()); 
    } else if(item.getTitle()=="Camera"){ 
     function2(item.getItemId()); 
    } else return false; 
    return true; 
} 

public void function1(int id){ 
    Toast.makeText(this, "Gallery function called", 
     Toast.LENGTH_SHORT) 
    .show(); 
} 

public void function2(int id){ 
    Toast.makeText(this, "Camera function called", 
     Toast.LENGTH_SHORT) 
    .show(); 
} 

答えて

0

を、必要な修正を行います。必要に応じてオプションメニューを制限するには、もう1つのメソッドを追加する必要があります。

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    super.onPrepareOptionsMenu(menu); 


    } 

これで、リストビューをクリックすると、clcikedされているアイテムの位置を取得し、それをグローバルに保存します。今度は上記の方法をこのように変更してください。

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    super.onPrepareOptionsMenu(menu); 

      if(list_item_position==2){ 
       return true; 
    } 
    else 
    return false; 
    } 

ここで、2番目の位置にあるリスト項目がクリックされた場合にのみ、オプションメニューが表示されます。

+0

私はonCreateOptionsMenu()を使用していません。私はonCreateContextMenuを使用していますので、plsです。 onCreateContextMenu().thanks for responsce ... suggetionを与えてください:) – shyam

+0

次に、メソッド名をonPrepareOptionsMenu()ではなくonPrepareContextMenu()に変更します。 –

+0

if(list_item_position == 2)のlist_item_positionは何ですか?list_item_positionにエラーが発生しています。 – shyam

関連する問題