2011-07-29 13 views
0

私はcustom list viewを実装しました。カスタムリストのコンテキストメニュー項目の使い方android

を(活動を使用しListRowAdapterBaseRowAdaptorを拡張)私は、アダプタクラスのgetView方法で

itemView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() 
{ 
     @Override 
     public void onCreateContextMenu(ContextMenu menu, View v, 
       ContextMenuInfo menuInfo) 
     { 

       menu.setHeaderTitle("Context Menu"); 
       menu.add(0, v.getId(), 0, "Action 1"); 
      // menu.add(0, v.getId(), 0, "Action 2"); 

     } 
    }); 

設定リストビューするcontextmenuを設定しました。

しかし、アイテム選択イベントはどのように処理されますか?

私はそのイベントをMy Activityで捕まえることができます。

しかし、私はどのようにリストビューの行を識別できますか?

答えて

0

選択した項目のインデックスを含むグローバル変数を作成できます。リストビューonLongClick()、onClick()などの変数の値を設定します。コンテキストメニューのアイテムクリックイベントの中にいるときは、リストビュー内の現在選択されている行にアクセスできます。

0

LongClickListenerをlistviewに設定し、次にlongClickのコンテキストメニューを表示します。

Class ActivityName extends Activity implements IconContextItemSelectedListener 
{ 
    private IconContextMenu cmContextMenu; 
    private int selectedPosition ; 

    onCreate() { 
     cmContextMenu = new IconContextMenu(this, R.menu.fbupdatecontextmenu); 
     cmContextMenu.setOnIconContextItemSelectedListener(this); 
     lv.setOnItemLongClickListener(new OnItemLongClickListener() { 
      public boolean onItemLongClick(AdapterView<?> av, View v, int position, long arg3) { 
       selectedPosition = position; 
       cmContextMenu.show(); 
       return true;    
      } 
     }); 
    } 

    public void onIconContextItemSelected(MenuItem item, Object info) { 
     switch (item.getItemId()) { 
     case R.id.someThing: { 
      system.out.prinlt("position " +selectedPosition); 
      break; 
     } 
    } 
} 
+0

ありがとう。 IconContextMenuが私のカスタムクラスであるため、コードスニペットは参照のためのものだったので、これは役に立ちません。 – rwe

+0

あなたはcontextMenuを作成し、それをそのままにしておくことができます。 –

関連する問題