我创建了一个充气菜单,它会显示两个按钮,一个链接到可点击项目列表,点击后会关闭菜单并返回到主屏幕视图。然而,另一个按钮会显示一个可用的单选按钮列表,但必须按下返回键才能关闭此菜单。我希望它在选择其中一个选项后自动关闭。
任何有关如何实现这一点的建议将不胜感激,在此先感谢您的帮助。
这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) { //creates the menu options that appear when the menu button is pressed
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) { // assigns one button in the menu to display Rhythm and then further options
final CharSequence[] Rhythms = {"Sinus Rhythm", "Atrial Fibulation", "Atrial Flutter", "Junctional Rhythm", "SVT", "Ventricular Tachycardia"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Interpretation of ECG waveform");
builder.setItems(Rhythms, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int Rhythm) {
Toast.makeText(getApplicationContext(), Rhythms[Rhythm], Toast.LENGTH_SHORT).show(); // add a save function here to utilise the onclick function
} // saved file should match the ecg file name and also be loaded when app is started
});
final CharSequence[] annotations = {"A", "B", "B-","C", "C-", "D", "F"}; // assigns a new button with the annotation options
AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
builder1.setTitle("Evaluate ECG quality");
builder1.setSingleChoiceItems(annotations, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), annotations[item], Toast.LENGTH_SHORT).show(); // again add a save function here, this should be able to override the
// annotation coding written by Daniel.
}
});
setCancelable(true);
switch (item.getItemId()) {
case R.id.annotatebutton: // when annotation button is click display annotation options
builder1.show();
return true;
case R.id.rhythmbutton: // when rhythm button is clicked display rhythm options
builder.show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}