【问题标题】:Proceed to next activity through radio buttons on alert dialog通过警报对话框上的单选按钮继续下一个活动
【发布时间】:2015-10-08 14:02:52
【问题描述】:

我有列表视图,单击每个列表项时,它必须弹出带有单选按钮的警报。选择一个单选按钮选项,然后单击警报对话框上的“确定”按钮,我必须能够继续下一个活动。 (PS 我不想使用正负按钮)。

下面是我的代码,listview 工作正常,弹出警报对话框,选择 yes 或 no 时,Toast 显示。但如果是,它不会继续进行下一个活动。请帮忙!!

listview = (ListView) findViewById(R.id.mylistview);
    final String[] items = new String[]{"IOS", "ANDROID", "WINDOWS"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_expandable_list_item_1, items);
    listview.setAdapter(adapter);

    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            int itemposition = position;
            String itemvalue = (String) listview.getItemAtPosition(position);
            final CharSequence[] items1 = {"yes", "no"};
            final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("slection confirmation");
            builder.setSingleChoiceItems(items1, -1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(getApplicationContext(), items1[which], Toast.LENGTH_SHORT).show();
                }


            });
            builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    switch(items1.toString())
                    {
                        case("yes"):
                            Intent myint=new Intent(MainActivity.this,secondpage.class);
                            myint.putExtra("act1","");
                            startActivity(myint);
                            break;
                        case("no"):
                            dialog.cancel();

                    }
               }
            });
            AlertDialog alert = builder.create();
            alert.show();
        }
    });

}

}

【问题讨论】:

    标签: android android-intent radio-button android-alertdialog


    【解决方案1】:

    您在下面的代码 sn-p 中遇到问题,当您将整个字符串数组转换为 string 时,您需要一次获取一项。

     switch(items1.toString())
                        {
                            case("yes"):
                                Intent myint=new Intent(MainActivity.this,secondpage.class);
                                myint.putExtra("act1","");
                                startActivity(myint);
                                break;
                            case("no"):
                                dialog.cancel();
    
                        }
    

    请用

    代替
    String selection;
         listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
                    int itemposition = position;
                    String itemvalue = (String) listview.getItemAtPosition(position);
                    final CharSequence[] items1 = {"yes", "no"};
                    final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("slection confirmation");
                    builder.setSingleChoiceItems(items1, -1, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
    
        selection = items1[which]
                            Toast.makeText(getApplicationContext(), items1[which], Toast.LENGTH_SHORT).show();
                        }
    
    
                    });
                    builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            switch(selection)
                            {
                                case("yes"):
                                    Intent myint=new Intent(MainActivity.this,secondpage.class);
                                    myint.putExtra("act1","");
                                    startActivity(myint);
                                    break;
                                case("no"):
                                    dialog.cancel();
    
                            }
                       }
                    });
                    AlertDialog alert = builder.create();
                    alert.show();
                }
            });
    

    【讨论】:

    • 非常感谢。它起作用了,但是当我在 setsinglechoiceitems 循环中使用字符串选择时,它给了我使用'final'的错误,当我使用'final'时,它给了我一个错误,即不应使用final。所以使字符串选择成为全局并且它工作正常: )
    • 哦,是的,我们必须将此变量设为全局,我编辑此答案,如果可行,请接受此问题
    • 无论我选择哪个列表项,上面的代码都会引导我从第一页(MainActivity)到第二个活动(secondpage)。如何对其进行编码,以便我可以将每个列表项导航到不同的活动
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    相关资源
    最近更新 更多