对话框打开另一个对话框

时间:2013-06-22 22:12:38

标签: android alertdialog

如果有人在用对话框回答选择问题后选择了特定答案,我想跟进一个对话框。

在此示例中,如果此人选择“Choice1”,则应打开另一个对话框以询问更多问题。

我在下面有以下部分代码:

private void openDialog1()
{
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Select Choice");
    builder.setSingleChoiceItems(ChoiceLists.listofchoices,-1,new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int item)
            {
                ccRewardDialog.dismiss();
                String finalString = "";
                if((ChoiceLists.listofchoices[item].equals("Choice1")) || (ChoiceLists.listofchoices[item].equals("Choice2"))) 
                {
                    openDialog2();
                }
                TextView tv1 = (TextView) getActivity().findViewById(R.id.tv1);
                finalString = ChoiceLists.strRewards[item];
                if(!RESULT.equals("")) //RESULT being a global value
                {
                    finalString = finalString + "-" + RESULT;
                    RESULT = "";
                }
                tv1.setText(tv1.getText() + finalString + "\n");                

            }
        });
    dialog1 = builder.create();
    dialog1.show();
}

private void openDialog2()
{
    LayoutInflater li = LayoutInflater.from(getActivity());
    View promptView = li.inflate(R.layout.reward_detail_prompt, null);
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setView(promptView);
    final EditText userInput = (EditText) promptView.findViewById(R.id.etRewardDetail);
    builder.setCancelable(false);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() 
        {
            public void onClick(DialogInterface dialog, int id) 
            {
                RESULT = userInput.getText().toString();
            }
        });
    builder.setNegativeButton("Cancel",new DialogInterface.OnClickListener() 
        {
            public void onClick(DialogInterface dialog, int which) 
            {
                RESULT = ""; //RESULT being a global value
            }           
        });
}   

如果我不能这样做的话。你会怎么做呢?提前致谢。我正在继续学习更多内容,感谢所有的帮助

1 个答案:

答案 0 :(得分:3)

完成第二种方法,例如

private void openDialog2()
{
 ...
 builder.create().show();
}