Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android自定义对话框方法_Android_Dialog - Fatal编程技术网

Android自定义对话框方法

Android自定义对话框方法,android,dialog,Android,Dialog,有人能告诉我为什么不能在自定义对话框方法中对buton调用setOnClickListener方法吗?有没有一种可能的方法来处理这种对话框中的点击?代码如下: private Dialog wifiDialog() { final Dialog dialog = new Dialog(activity); dialog.setContentView(R.layout.wifi_dialog); dialog.setTitle("Upload"); Button

有人能告诉我为什么不能在自定义对话框方法中对buton调用
setOnClickListener
方法吗?有没有一种可能的方法来处理这种对话框中的点击?代码如下:

private Dialog wifiDialog() {
    final Dialog dialog = new Dialog(activity);
    dialog.setContentView(R.layout.wifi_dialog);
    dialog.setTitle("Upload");

    Button no = (Button) findViewById(R.id.button_wifi_No);
    Button yes = (Button) findViewById(R.id.button_wifi_Yes);

    no.setOnClickListener(new OnClickListener() { // runtimeException

        @Override
        public void onClick(View v) {
            wifiDialog().dismiss();
        }
    });

    return dialog;
}
提前感谢

试试这个

private Dialog wifiDialog(Context context) {
    final Dialog dialog = new Dialog(context);
    LayoutInflater layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.wifi_dialog,null);
    dialog.setContentView(view);
    dialog.setTitle("Upload");

    Button no = (Button) view.findViewById(R.id.button_wifi_No);
    Button yes = (Button) view.findViewById(R.id.button_wifi_Yes);

    no.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    return dialog;
}
和使用:

wifiDialog(this); // In activity context;
我解释你为什么会出错。你循环你的逻辑。在
onClick
方法中,您尝试创建另一个对话框,并将相同的
单击侦听器
设置为相同的
按钮
。因此,如果您想取消对话框,请使用dialog的实例,而不是创建新对话框。

试试这个

private Dialog wifiDialog(Context context) {
    final Dialog dialog = new Dialog(context);
    LayoutInflater layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.wifi_dialog,null);
    dialog.setContentView(view);
    dialog.setTitle("Upload");

    Button no = (Button) view.findViewById(R.id.button_wifi_No);
    Button yes = (Button) view.findViewById(R.id.button_wifi_Yes);

    no.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    return dialog;
}
和使用:

wifiDialog(this); // In activity context;
我解释你为什么会出错。你循环你的逻辑。在
onClick
方法中,您尝试创建另一个对话框,并将相同的
单击侦听器
设置为相同的
按钮
。因此,如果您想取消对话框,请使用dialog的实例,而不是创建新对话框。

试试这个

private Dialog wifiDialog(Context context) {
    final Dialog dialog = new Dialog(context);
    LayoutInflater layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.wifi_dialog,null);
    dialog.setContentView(view);
    dialog.setTitle("Upload");

    Button no = (Button) view.findViewById(R.id.button_wifi_No);
    Button yes = (Button) view.findViewById(R.id.button_wifi_Yes);

    no.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    return dialog;
}
和使用:

wifiDialog(this); // In activity context;
我解释你为什么会出错。你循环你的逻辑。在
onClick
方法中,您尝试创建另一个对话框,并将相同的
单击侦听器
设置为相同的
按钮
。因此,如果您想取消对话框,请使用dialog的实例,而不是创建新对话框。

试试这个

private Dialog wifiDialog(Context context) {
    final Dialog dialog = new Dialog(context);
    LayoutInflater layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = layoutInflater.inflate(R.layout.wifi_dialog,null);
    dialog.setContentView(view);
    dialog.setTitle("Upload");

    Button no = (Button) view.findViewById(R.id.button_wifi_No);
    Button yes = (Button) view.findViewById(R.id.button_wifi_Yes);

    no.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    return dialog;
}
和使用:

wifiDialog(this); // In activity context;

我解释你为什么会出错。你循环你的逻辑。在
onClick
方法中,您尝试创建另一个对话框,并将相同的
单击侦听器
设置为相同的
按钮
。因此,如果您想取消对话框,请使用对话框实例,而不是创建新的对话框。

请不要只发布代码,而不解释更改的内容和原因,否则OP(和未来的访问者)将一无所获。@Simon抱歉。我会考虑到这一点。请不要只发布代码,而不解释更改的内容和原因,否则OP(和未来的访问者)将一无所获。@Simon抱歉。我会考虑到这一点。请不要只发布代码,而不解释更改的内容和原因,否则OP(和未来的访问者)将一无所获。@Simon抱歉。我会考虑到这一点。请不要只发布代码,而不解释更改的内容和原因,否则OP(和未来的访问者)将一无所获。@Simon抱歉。我会考虑这一点