Android,带项目的菜单选项

时间:2016-11-21 04:07:46

标签: android android-menu

我创建了一个包含多个选项的菜单,但是当我在MainActivity中点击它们时,我想要一个单独的页面。如:如果我点击Movies,我会有其他页面显示电影列表等。

我应该为此调用哪些函数?

package com.example.popupmenu.popupmenu;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.PopupMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity implements PopupMenu.OnMenuItemClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);}

   public void showPopUp(View v){

    PopupMenu popup=new PopupMenu(this,v);
    popup.setOnMenuItemClickListener(MainActivity.this);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu. main_menu, popup.getMenu() );
             popup.show();
}


     @Override
     public boolean onMenuItemClick(MenuItem item) {

       switch (item.getItemId()) {

        case R.id.Movies:
            Toast.makeText(getApplicationContext(), "movies Selected", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.MeloDramas:
            Toast.makeText(getApplicationContext(), "Melodramas Selected", Toast.LENGTH_SHORT).show();
            return true;
        case R.id.Songs:
            Toast.makeText(getApplicationContext(), "Songs Selected", Toast.LENGTH_SHORT).show();
            return true;
         default:
            return false;
    }
    //return false;
}
}

5 个答案:

答案 0 :(得分:0)

在您的菜单上单击“将此内容添加到StartActivity

 case R.id.Movies:
       Intent launchNewIntent = new Intent(MainActivity.this,SecondActivity.class);
       startActivity(launchNewIntent);
       return true;

这将打开新的活动。

答案 1 :(得分:0)

创建电影列表活动。然后在MainActivity中的menuitemclick函数中,调用MovieActivity的意图。 例如;

Intent intent = new Intent(MainActivity.this, MovieActivity.class);
startActivity(intent);

答案 2 :(得分:0)

您可以使用startActivity开始新活动。要了解有关开始活动的详情,请访问this链接。

Intent intent = new Intent(MainActivity.this, MovieActivity.class);
startActivity(intent);

答案 3 :(得分:0)

首先,你没有调用showPopUp(View v),你需要将其称为膨胀菜单。如果你想要常规菜单,那你为什么要使用弹出菜单..只需用它来充气菜单......

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.Movies) {
        Intent i = new Intent(MainActivity.this,SplashScreen.class);
        startActivity(i);
        return true;
    }
    if (id == R.id.MeloDramas) {
        Intent i = new Intent(MainActivity.this,melodramas.class);
        startActivity(i);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

在这种情况下,你不需要调用任何方法只需要这两种方法..

答案 4 :(得分:0)

我建议你使用基于MenuItem选择的片段  public boolean onMenuItemClick(MenuItem item)