带单选按钮的对话框不起作用onClick()

图集91

我的菜单中有一个项目

case R.id.theme:
   ShowRadioDialog();           
 return true;

使用显示带有3个单选按钮的“警报”对话框的方法。当我单击该项目时,将显示对话框,但是当我在对话框中选择某个项目并点击positiove按钮时,则不会发生任何事情。这是方法:

public void ShowRadioDialog() {
        final CharSequence[] items={"Rosso","Verde","Blu"};
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setTitle("Seleziona un colore");
        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

            @SuppressLint("NewApi")
            @Override
            public void onClick(DialogInterface dialog, int which) {

            if (wich== 1) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                            getWindow().setStatusBarColor(MainActivity.this.getResources().getColor(R.color.red));
                            toolbar.setBackgroundColor(MainActivity.this.getResources().getColor(R.color.red));
                            Toast.makeText(MainActivity.this, "Rosso OK", Toast.LENGTH_SHORT).show();
                            Log.i("Colors", "Rosso Ok");
                        }
                } else if (wich ==2) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                        getWindow().setStatusBarColor(MainActivity.this.getResources().getColor(R.color.green_welcome));
                    }
                } else if (wich == 3){
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                        getWindow().setStatusBarColor(MainActivity.this.getResources().getColor(R.color.primary_dark_blue));
                    }
                }
            }
        });

        builder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener() {

            @SuppressLint("NewApi")
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub

                    if ("Rosso".equals(items[which])) {
                        which = 1;
                    } else if ("Verde".equals(items[which])) {

                        which = 2;
                    } else if ("Blu".equals(items[which])) {

                        which = 3;
                    }

            }
        });
        builder.show();
    }

我不确定这是正确的方法。但是,不会出现任何一个(在logcat中登录,在应用程序中为Toast)。似乎肯定按钮不接受选择。有什么问题吗?

Rohit5k2

在顶层定义一个变量,并使用该变量访问所选项目。

int index = -1;

public void ShowRadioDialog() {
    final CharSequence[] items={"Rosso","Verde","Blu"};
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setTitle("Seleziona un colore");
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        @SuppressLint("NewApi")
        @Override
        public void onClick(DialogInterface dialog, int which) {

        if (index == 1) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                        getWindow().setStatusBarColor(MainActivity.this.getResources().getColor(R.color.red));
                        toolbar.setBackgroundColor(MainActivity.this.getResources().getColor(R.color.red));
                        Toast.makeText(MainActivity.this, "Rosso OK", Toast.LENGTH_SHORT).show();
                        Log.i("Colors", "Rosso Ok");
                    }
            } else if (index ==2) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                    getWindow().setStatusBarColor(MainActivity.this.getResources().getColor(R.color.green_welcome));
                }
            } else if (index == 3){
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                    getWindow().setStatusBarColor(MainActivity.this.getResources().getColor(R.color.primary_dark_blue));
                }
            }
        }
    });

    builder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener() {

        @SuppressLint("NewApi")
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

                if ("Rosso".equals(items[which])) {
                    index = 1;
                } else if ("Verde".equals(items[which])) {

                    index = 2;
                } else if ("Blu".equals(items[which])) {

                    index = 3;
                }

        }
    });
    builder.show();
}

如果要index在单击“确定”按钮时保存“共享首选项”中的值,请执行以下操作

存储在SharedPreferences中

SharedPreferences preferences = getSharedPreferences("myPref", getApplicationContext().MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putInt("choice", index);
editor.commit();

需要时从SharedPreferences中获取

SharedPreferences preferences = getSharedPreferences("myPref", getApplicationContext().MODE_PRIVATE);
int index = preferences.getInt("choice",-1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打开文件对话框不起作用

来自分类Dev

为什么我的对话框不起作用?

来自分类Dev

Primefaces对话框关闭按钮不起作用

来自分类Dev

jQuery对话框不起作用

来自分类Dev

AngularJS材质对话框不起作用

来自分类Dev

为什么单击“是/否”按钮后JOptionPane的“确认对话框”不起作用?

来自分类Dev

使用JavaScript的打开模式对话框onClick不起作用

来自分类Dev

md对话框不起作用

来自分类Dev

Android对话框wrap_content不起作用

来自分类Dev

Kubuntu 15.04“文件打开”对话框不起作用

来自分类Dev

带单选按钮的PHP表单不起作用

来自分类Dev

我使用jQuery对话框后按钮不起作用

来自分类Dev

对话框的div按钮单击对话框中的jquery for循环不起作用

来自分类Dev

没有按钮可触发时,警报对话框不起作用

来自分类Dev

jQuery UI对话框的“关闭”按钮不起作用

来自分类Dev

对话框不起作用

来自分类Dev

对话框jQuery不起作用

来自分类Dev

单击按钮时,jQuery ui对话框不起作用

来自分类Dev

带单选按钮的对话框不起作用onClick()

来自分类Dev

Zenity进度对话框的“取消”按钮如何起作用?

来自分类Dev

对话框消息不起作用

来自分类Dev

jQuery对话框不起作用

来自分类Dev

使用JavaScript的打开模式对话框onClick不起作用

来自分类Dev

md对话框不起作用

来自分类Dev

带文本框的C#WPF单选按钮不起作用

来自分类Dev

棉花糖权限对话框的ALLOW按钮不起作用,为什么?

来自分类Dev

jQuery对话框不起作用

来自分类Dev

模态对话框不起作用

来自分类Dev

由于某种原因,Div onclick 对话框打开不起作用