小编For*_*ors的帖子

如何在AlertDialog中设置AlertDialog.finish()?

我目前正在使用需要使用大量AlertDialogs的应用程序.我目前在这里编写了一个基本编码:

protected void StopButton () {
    AlertDialog.Builder StopDialog = new AlertDialog.Builder(MainActivity.this);
    StopDialog.setTitle(R.string.Stop_Title);
    StopDialog.setMessage(R.string.Stop_Message);
    StopDialog.setPositiveButton(R.string.Yes_Button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {
            ((Protoype2) getApplication()).setRequestingLocationUpdates(false);
            finish();
        }
    });
    StopDialog.setNegativeButton(R.string.No_Button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            ((Protoype2) getApplication()).setRequestingLocationUpdates(true);
        }
    });
    StopDialog.setNeutralButton(R.string.Negative_Button, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //Closes box
            finish();
        }
    });
    AlertDialog alert = StopDialog.create();
    alert.show();
}
Run Code Online (Sandbox Code Playgroud)

StopButton工作,当我打电话时,Dialog会出现.但是,完成(); 功能不起作用.

经过审核,我发现finish(); 没有完成对话,而是完整的应用程序.我知道我需要在那里获得AlertDialog.cancel.

问题是:正如您所看到的,AlertDialog仅在StopDialog完成后创建.

如何在StopDialog完成之前设置AlertDialog.finish()?

java android android-alertdialog

2
推荐指数
1
解决办法
2541
查看次数

带有对话框的findViewbyID

我试图在特定对话框中提取用户输入.但是,当我尝试使用findViewbyID并放入时

final EditText ExceedingLimitInput = (EditText)dialog.findViewbyId(R.id.ExceedingLimitInput);
Run Code Online (Sandbox Code Playgroud)

Android Studio说没有定义对话框.我不太清楚我应该在这做什么.

我已经挖掘了一些与此相关的问题,但是大多数问题只与Fragment的使用有关,而我没有使用任何碎片.也许我正在延长错误的课程?

有人可以说明为什么没有定义对话框,以及我如何解决它?

这是我的代码供参考:

设置菜单(主类)

package com.example.denny.protoype2;

import android.app.Dialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class SettingsMenu extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings_menu);
        //Exceeding Limit Dialog
        final Button ExceedingLimitButton = (Button)findViewById(R.id.ExceedingLimitButton);
        ExceedingLimitButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Dialog ExceedingLimitDialog = new Dialog(SettingsMenu.this);
                ExceedingLimitDialog.setTitle("Exceeding Limit Dialog");
                ExceedingLimitDialog.setContentView(R.layout.exceeding_limit_dialog);
                ExceedingLimitDialog.show();

                final EditText ExceedingLimitInput = (EditText)dialog.findViewbyId(R.id.ExceedingLimitInput);

            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

android dialog findviewbyid

-1
推荐指数
1
解决办法
397
查看次数