菜单事件处理
menu event handling
我想在菜单列表中选择语言选择后设置一个选择列表。
该列表适用于普通按钮情况 (onClick),但适用于菜单。
有什么需要注意的吗?
对不起我的英语
switch (item.getItemId()) {
case R.id.changeCity:
showInputDialog();
return true;
case R.id.Language:
List<String> language = new ArrayList<String>();
language.add(getString(R.string.english));
language.add(getString(R.string.chinese));
new AlertDialog.Builder(WeatherClass.this)
.setSingleChoiceItems(language.toArray(new String[language.size()]), 0,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
return true;
default:
return super.onOptionsItemSelected(item);
}
我想要什么
像这样显示列表
首先显示语言选择对话框,然后根据位置或文本显示另一个有内容的对话框。
case R.id.Language:
final CharSequence[] items = { "English", "Chinese"};
AlertDialog.Builder builder = new AlertDialog.Builder(WeatherClass.this);
builder.setTitle("Selection");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int position ) {
List<String> language = new ArrayList<String>();
if (position == 0) {
// language = "english data"
}
if (position == 1) {
// language = "chinese data"
}
new AlertDialog.Builder(WeatherClass.this).setSingleChoiceItems(language.toArray(new String[language.size()]), 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// second dialog data
}
})
.show();
}
}).show();
return true;
我想在菜单列表中选择语言选择后设置一个选择列表。
该列表适用于普通按钮情况 (onClick),但适用于菜单。
有什么需要注意的吗?
对不起我的英语
switch (item.getItemId()) {
case R.id.changeCity:
showInputDialog();
return true;
case R.id.Language:
List<String> language = new ArrayList<String>();
language.add(getString(R.string.english));
language.add(getString(R.string.chinese));
new AlertDialog.Builder(WeatherClass.this)
.setSingleChoiceItems(language.toArray(new String[language.size()]), 0,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
return true;
default:
return super.onOptionsItemSelected(item);
}
我想要什么
像这样显示列表
首先显示语言选择对话框,然后根据位置或文本显示另一个有内容的对话框。
case R.id.Language:
final CharSequence[] items = { "English", "Chinese"};
AlertDialog.Builder builder = new AlertDialog.Builder(WeatherClass.this);
builder.setTitle("Selection");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int position ) {
List<String> language = new ArrayList<String>();
if (position == 0) {
// language = "english data"
}
if (position == 1) {
// language = "chinese data"
}
new AlertDialog.Builder(WeatherClass.this).setSingleChoiceItems(language.toArray(new String[language.size()]), 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// second dialog data
}
})
.show();
}
}).show();
return true;