我目前正在使用需要使用大量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()?
我试图在特定对话框中提取用户输入.但是,当我尝试使用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)