在我的应用程序中,当我触摸一个编辑框时,我打开一个对话框,其中包含一个3字符序列作为完整格式,年份格式和取消。当我选择其中一个时,另一个对话框会被打开。
当第二个对话框被打开时,我希望第一个对话框被自动解除或取消,但它没有发生.....以下是我的代码的一部分
private OnTouchListener bdListener = new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
DOBalert();
return isexists;
}
private void DOBalert()
{
Builder DOBbuilder = new AlertDialog.Builder(RestingSpotAdd.this);
DOBbuilder.setTitle("Date of Birth");
final CharSequence[] items = {"YearFormat", "FullFormat","Cancel"};
DOBbuilder.setItems(items, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int item)
{
int i = item;
if(i==0)
{
dialog.dismiss();
yearFormat();
}
else if(i==1)
{
dialog.cancel();
fullFormat();
}
else if(i==2)
{
cancel();
}
}
public void yearFormat()
{
showDialog(YEARSELECTOR_ID);
}
public void fullFormat()
{
showDialog(DATEYEARMONTHSELECTOR_ID);
}
});
AlertDialog DOBalert = DOBbuilder.create();
DOBalert.show();
}
};
请帮帮我朋友......
答案 0 :(得分:3)
为什么使用onTouchListener
代替onClickListener
?
问题是,当您单击列表对话框中的某个项目时,对话框的触摸事件也会被触发,导致它再次显示。
答案 1 :(得分:0)
使用以下代码
dialog.dismiss();