final View DialogView=factory.inflate(R.layout.dialogv,null);
final EditText Text1 = (EditText)DialogView.findViewById(R.id.et_num);
new AlertDialog.Builder(this).setTitle("请输入一个数字")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(DialogView)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/* LayoutInflater factory=LayoutInflater.from(GuessNumberGameActivity.this);
EditText et=(EditText)factory.inflate(R.id.et_num,null);*/
//et = (EditText)findViewById(R.id.et_num);
String str = Text1.getText().toString();
if("".equals(str) || str == null){
new AlertDialog.Builder(DialogView.getContext()).setTitle("请输入数字哦").setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//这里要继续弹出第一个输入对话框
}
}).show();
return;
}
Toast.makeText(DialogView.getContext(),str,Toast.LENGTH_SHORT );
Log.i("inputStr",str);
Log.i("intflag",new Integer(flag).toString());
}
})
.show();
以上代码片段,弹出一个输入对话框用户输入一个数字然后确定,如果输入的内容为空则弹出第二个对话框提示用户“请输入数字”,然后点击确定的时候之前弹出的输入对话框要继续调用出来(注释中有说明)请教如何实现。
final EditText Text1 = (EditText)DialogView.findViewById(R.id.et_num);
new AlertDialog.Builder(this).setTitle("请输入一个数字")
.setIcon(android.R.drawable.ic_dialog_info)
.setView(DialogView)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/* LayoutInflater factory=LayoutInflater.from(GuessNumberGameActivity.this);
EditText et=(EditText)factory.inflate(R.id.et_num,null);*/
//et = (EditText)findViewById(R.id.et_num);
String str = Text1.getText().toString();
if("".equals(str) || str == null){
new AlertDialog.Builder(DialogView.getContext()).setTitle("请输入数字哦").setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//这里要继续弹出第一个输入对话框
}
}).show();
return;
}
Toast.makeText(DialogView.getContext(),str,Toast.LENGTH_SHORT );
Log.i("inputStr",str);
Log.i("intflag",new Integer(flag).toString());
}
})
.show();
以上代码片段,弹出一个输入对话框用户输入一个数字然后确定,如果输入的内容为空则弹出第二个对话框提示用户“请输入数字”,然后点击确定的时候之前弹出的输入对话框要继续调用出来(注释中有说明)请教如何实现。
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
在注释处添加
builder.show();
程序崩溃...
builder.show();程序崩溃是由于 The specified child already has a parent 按你的需求解决:
public void onTest(){ //+++++++++++
//弹出对话框的所有信息
final View DialogView=factory.inflate(R.layout.dialogv,null);
.....
new AlertDialog.Builder(DialogView.getContext()).setTitle("请输入数字哦").setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
onTest();//+++++++++++++
}}).show();
......
.show();
}
一句话 把弹出输入信息框的整段代码 放在一个方法里 在你注释处调用这个方法就ok了。
正解!是否还有更好的方法来管理dialog?望指点!
我做过一个是先弹出一个DialogView,里面放了一张图片和两个按钮(删除、返回),点删除后会再弹出一个框提示是否确定删除,确定就返回到最上层的界面,取消就返回到上一层的对话框。跟你要的功能类似吧?
类似,但是如您所述将第二层对话框改为用setNegativeButton试过了还是不行。呵呵。