在我的应用中,当用户点击按钮时,会弹出一个对话框。然后单击对话框中的“提交”按钮,将打开另一个对话框。我在这种情况下面临的问题是,在单击第一个对话框的按钮时,它显示第二个对话框,但它没有关闭第一个对话框,第二个问题是第二个对话框有一个Edittext框,并且在使用edittext.getText()它没有得到输入字符串。
showCustomDialog()是打开第一个对话框的方法
protected void showCustomDialog() {
// TODO Auto-generated method stub
final Dialog dialog = new Dialog(CallBlockerBlacklistViewActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.blockoptionsdialog);
Button button = (Button)dialog.findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
selectContactFromDevice();
dialog.dismiss();
}
});
Button button1 = (Button) dialog.findViewById(R.id.manual);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showManualDialog();
}
});
dialog.show();
}
protected void showManualDialog() {
// TODO Auto-generated method stub
final Dialog dialog = new Dialog(CallBlockerBlacklistViewActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.manualentry);
final EditText manual_edittext=(EditText) dialog.findViewById(R.id.manualedittext);
Log.d("txtB" , String.valueOf(manual_edittext));
manual_number=manual_edittext.getText().toString();
Button button1 = (Button) dialog.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
addtolist(manual_number);
dialog.dismiss();
}
});
dialog.show();
}
addtolist没有传递所需的号码。
答案 0 :(得分:0)
答案#1非常简单:您在第一次点击时只有dialog.dismiss(),但不是第二次。
Button button = (Button)dialog.findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
selectContactFromDevice();
dialog.dismiss();
}
});
Button button1 = (Button) dialog.findViewById(R.id.manual);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showManualDialog();
}
});
答案#2是你在viewCreation中调用getText。您需要等待用户输入文本,然后单击按钮。将getText()移动到onClick()中,如下所示:
Button button1 = (Button) dialog.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//This line needs to go inside.
String manual_number=manual_edittext.getText().toString();
addtolist(manual_number);
dialog.dismiss();
}