菜单项没有显示对话框下面是我的代码,当用户点击菜单项时,应该会将他带到登录页面添加代码。
public boolean onOptionsItemSelected(MenuItem item, int id) {
switch (item.getItemId()) {
case R.id.Login:
startActivity(new Intent(this, Login.class));
return true;
case R.id.About:
startActivity(new Intent(this, About.class));
return true;
case R.id.Post_Ads:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false);
AlertDialog alert = builder.create();
alert.show();
startActivity(new Intent(this, Login.class));
return true;
}
return super.onOptionsItemSelected(item);
}
试试这个,它应该可以工作:
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.Login:
Toast.makeText(getApplicationContext(), "Fired 1", Toast.LENGTH_SHORT).show();
startActivity(new Intent(this, Login.class));
return true;
case R.id.About:
Toast.makeText(getApplicationContext(), "Fired 2", Toast.LENGTH_SHORT).show();
startActivity(new Intent(this, About.class));
return true;
case R.id.Post_Ads:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false);
AlertDialog alert = builder.create();
alert.show();
startActivity(new Intent(this, Login.class));
return true;
}
return super.onOptionsItemSelected(item);
}
在Activity
class
到handle option menu's.
中没有名为public boolean onOptionsItemSelected(MenuItem item, int id)
的方法
处理此类事件的方法是onOptionsItemSelected(MenuItem)
。
为了显示您的菜单项,您还必须使用以下方法,检查你是否也实施了这种方法,
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.your_menu_file, menu);
return true;
}
还有一个小的修正,
您已经实现了以下警报对话框方法,
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false);
AlertDialog alert = builder.create();
alert.show();
startActivity(new Intent(this, Login.class));
您尚未在此处提供任何"确定"或"取消"按钮,您还将其设置为可取消(false)。因此用户无法在此处选择任何选项。
所以我建议你在这里给出Ok和Cancel按钮,然后在onClick()方法中做你想做的事情。如以下示例:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false);
AlertDialog alert = builder.create();
alert.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Do call some activity or close the app. Do what you wish to;
}
});
alert.setButton2("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Do stay in the current activity or something else. Do what you wish to;
}
});
alert.show();
return true;
希望,也许会有帮助。
试试这个
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Navigate to login").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
startActivity(new Intent(this, Login.class));
}
});
AlertDialog alert = builder.create();
alert.show();