2014-02-11 38 views
0

我的列表視圖的每個項目必須證明自己的上下文菜單,直到這裏works.My問題是,altough它適用於第一次點擊,一次我點擊,而不是兩次做工作,但只有工作longClick。 我不明白原因。 請幫幫我。onCLickListener在文本菜單

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapter, final View componente, int pos, long id){ 
       final String titoloriga = (String) adapter.getItemAtPosition(pos); 
       Log.d("List", "Ho cliccato sull'elemento con titolo" + titoloriga+" " +Integer.valueOf(pos)+" "+Long.valueOf(id)); 
       registerForContextMenu(componente); 
       componente.showContextMenu(); 

      } 

    }); 


}//end onCreate 

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
     menu.add("Comando1").setOnMenuItemClickListener(new OnMenuItemClickListener() { 

      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       // TODO Auto-generated method stub 
       Log.i("menu", "1"); 
       return false; 
      }}); 
     menu.add("Comando2").setOnMenuItemClickListener(new OnMenuItemClickListener() { 

      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       // TODO Auto-generated method stub 
       Log.i("menu", "2"); 
       return false; 
      }}); 
     menu.add("Comando3").setOnMenuItemClickListener(new OnMenuItemClickListener() { 

      @Override 
      public boolean onMenuItemClick(MenuItem item) { 
       // TODO Auto-generated method stub 
       Log.i("menu", "3"); 
       return false; 
      }}); 
    }//end create menu 

回答

0

嘗試使用onContextItemSelected()方法,像這樣:

String[] comandos = {"Comando1","Comando2","Comando3"}; 

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    for(int i = 0; i < comandos.length(); i++){ 
     menu.add(comandos[i]); 
    } 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    switch(item.getItemId()){ 
     case 1: 
      Log.i("menu", "1"); 
     ....... 
    } 
} 
+0

使用你的代碼我還沒有解決的問題。 – TWONEKSONE

+0

併發生其他問題:我甚至不能在switch結構中顯示Log.i()。 – TWONEKSONE