通过警报对话框上的单选按钮继续下一步 activity

Proceed to next activity through radio buttons on alert dialog

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

下面是我的代码,listview 工作正常,弹出警告对话框,选择是或否时,Toast 显示。但是如果是,它不会继续下一步 activity。请帮忙!!

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

}

}

您在下面的代码片段中遇到了问题,因为您将整个字符串数组转换为字符串,但您需要一次获取一项。

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