菜单事件处理 [英] menu event handling

查看:129
本文介绍了菜单事件处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在菜单列表中选择语言选择后,我想设置一个选择列表.

I want to set a list of choice after selected the language choice in menu list.

该列表适用于普通按钮(onClick)情况,但适用于菜单.

The list works in the normal button case (onClick) but menu.

有什么需要注意的吗?

对不起,我的英语水平

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

我想要什么



显示清单像



Show the list like

推荐答案

首先显示语言选择对话框,然后根据位置或文本显示另一个包含内容的对话框.

First show dialog of language selection and according to position or text show another dialog with content.

 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;

这篇关于菜单事件处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆