2017-04-10 17 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

がメニューにswitch文を使用してアクティビティを起動するにはIDを使用してみの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(メニューメニュー){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main、menu); <----- //これでポップアップメニューが開きます。R.menu.mainポップアップメニュー trueを返します。 } – SaravInfern

+0

私はpublic boolean onCreateOptionsMenu(メニューメニュー)を使用しました{ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main、menu); がtrueを返します。 }アクションバーボタンを作成します。メニュー作成用ではありません。コードの次の部分では、ポップアップメニューしか表示されません。 –

関連する問題