即使没有错误,菜单项也不会显示对话框



菜单项没有显示对话框下面是我的代码,当用户点击菜单项时,应该会将他带到登录页面添加代码。

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);
}

Activityclasshandle 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();

最新更新