2017-04-10 41 views
0

我在點擊操作欄按鈕上彈出菜單。當我點擊操作欄按鈕時,我得到我的彈出窗口。但我想打開另一個點擊彈出菜單項的活動。我怎麼能這樣做?從彈出式菜單項中打開新活動

以下是我的代碼片段。

@Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      MenuInflater inflater = getMenuInflater(); 
      inflater.inflate(R.menu.main, menu); 
      return true; 
     } 
     @SuppressLint("NewApi") @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 

      View menuItemView = findViewById(R.id.action_button); 
      PopupMenu popupMenu = new PopupMenu(this, menuItemView); 
      popupMenu.inflate(R.menu.popup); 
      popupMenu.show();   
      return true; 
    } 

和我的彈出菜單如下,

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
    android:layout_height="match_parent"> 

    <item 
     android:id="@+id/one" 
     android:title="About" 
     android:visible="true" 
     android:showAsAction="ifRoom|withText"/> 

    <item 
     android:id="@+id/two" 
     android:title="Contact Us" 
     android:visible="true" 
     android:showAsAction="ifRoom|withText"/> 

</menu> 

我想要做的是,當我點擊這些菜單項另一活動必須被打開。我怎麼能這樣做? 有人可以幫助我。提前致謝。

回答

0

試試這個

popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { 

        @Override 
        public boolean onMenuItemClick(MenuItem item) { 
         Toast.makeText(getApplicationContext(), 
           item.getTitle(), Toast.LENGTH_SHORT).show(); 
         return true; 
        } 
       }); 
+0

這對我有效。謝謝 –

0

要在彈出菜單中點擊打開活動:

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()) { 
     case R.id.menu_item1: 
      Intent intent = new Intent(this, ActivityForItemOne.class); 
      this.startActivity(intent); 
      break; 
     case R.id.menu_item2: 
      // another startActivity, this is for item with id "menu_item2" 
      break; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 

     return true; 
    } 
+0

但如果我這樣做,我將如何從操作欄按鈕打開彈出式菜單? –

1

使用ID使用switch語句開始練習用菜單ITEMID

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     switch (item.getItemId()) { 
     case R.id.one: 
      Intent intent1 =new Intent(this,ActivityOne.class);//firstActivity 
      startActivity(intent1); 
      return true; 
     case R.id.two: 
      Intent intent2 =new Intent(this,ActivityTwo.class);//second Activity 
      startActivity(intent2); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 
+0

但是,如果我這樣做,我將如何從操作欄按鈕打開彈出式菜單? –

+0

public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main,menu); <----- //這將打開彈出菜單R.menu.main彈出菜單 返回true; } – SaravInfern

+0

我已經使用了公共布爾onCreateOptionsMenu(菜單菜單)MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main,menu); 返回true; }用於創建操作欄按鈕,而不是創建菜單。代碼的下一部分只會向我打開彈出式菜單。 –

相關問題