2015-11-02 3 views
1

Я новичок в разработке Android. Я пытался добавить контекстное меню в свое приложение. Я понял, что по умолчанию для этого требуется длительный щелчок по кнопке, чтобы открыть контекстное меню. Но мне нужно заставить его появляться одним щелчком мыши. Я пробовал все другие решения здесь, в stackoverflow, но ни один из них не помогает мне.Контекстное меню с одним кликом Android

Я разместил свой код ниже. любезно сообщите мне, какие изменения необходимо внести, чтобы заставить его работать.

public class ThirdActivity extends ActionBarActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.third_layout); 
     confirmButton = (Button) findViewById(R.id.confirmButton); 
     registerForContextMenu(confirmButton); 
} 

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    menu.setHeaderTitle("Select Menu"); 
    menu.add(0, v.getId(), 0, "Action 1"); 
} 


public boolean onContextItemSelected(MenuItem item) { 

     if (item.getTitle() == "Action 1") { 
     //do something 
    } 
} 

ответ

3
just : 

public class ThirdActivity extends ActionBarActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.third_layout); 
     confirmButton = (Button) findViewById(R.id.confirmButton); 
    confirmButton .setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      confirmButton .performLongClick(); 
     } 
    }); 
     registerForContextMenu(confirmButton); 
} 

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    menu.setHeaderTitle("Select Menu"); 
    menu.add(0, v.getId(), 0, "Action 1"); 
} 


public boolean onContextItemSelected(MenuItem item) { 

     if (item.getTitle() == "Action 1") { 
     //do something 
    } 
} 
+0

или лоток, чтобы зарегистрировать скрыть BTN как ContextMenuBtn.And когда нажмите видимую BTN, шкура БТН performLongClick. –

Смежные вопросы