我创建了一个包含多个选项的菜单,但是当我在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;
}
}
答案 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)