Android 一起关闭警报对话框和 Activity
Android Close Alert Dialog box and Activity together
在我的 android 应用程序中,我有一个警报对话框将在创建 activity 时作为 sson 打开,并根据警报对话框中给出的文本完成搜索,结果显示在列表视图中.但是,当我单击后退按钮时,警告对话框会先关闭,然后我需要再次单击后退按钮来关闭当前 activity。但是我需要在一个后退按钮中关闭警报对话框和 Activity click.I 我给出了下面的代码。
AlertDialog alertDialog;
public SampleTest() {
alertDialog = null;
}
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.search_branch_list);
LayoutInflater li = LayoutInflater.from(context);
View promptsView = li.inflate(R.layout.search_branch_predict, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set prompts.xml to alertdialog builder
alertDialogBuilder.setView(promptsView);
final EditText userInput = (EditText) promptsView
.findViewById(R.id.edittext);
final Button btnSearch = (Button) promptsView.findViewById(R.id.search_Button);
// create alert dialog
alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
}
}
您可以将 onBackPressed() 方法重写为:
@Override
public void onBackPressed() {
alertDialog.dismiss();
yourActivity.this.finish();
}
覆盖 activity 中的 onBackPressed() 并检查您的警报对话框是否打开,然后调用 finish 终止 activity。
@Override
public void onBackPressed() {
if(alertDialog.isShowing()){
alertDilaog.dismiss(); // this will dismiss your dialog
finish(); // this will kill your activity
}else{
super.onBackPressed();
}
}
试试这个,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
//replaces the default 'Back' button action
if(keyCode==KeyEvent.KEYCODE_BACK)
{
dialog.dismiss();
finish();
}
return true;
}
或
@Override
public void onBackPressed() {
dialog.dismiss();
finish();
}
编辑 1:
LayoutInflater li = LayoutInflater.from(context);
LinearLayout mainLayout = (LinearLayout) li.inflate(R.id.YOUR_LAYOU_ID_HERE, this);
mainLayout.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int eid = event.getAction();
switch (eid) {
case MotionEvent.ACTION_DOWN:
finish();
break;
}
return true;
}
});
这可能对你有帮助。
在我的 android 应用程序中,我有一个警报对话框将在创建 activity 时作为 sson 打开,并根据警报对话框中给出的文本完成搜索,结果显示在列表视图中.但是,当我单击后退按钮时,警告对话框会先关闭,然后我需要再次单击后退按钮来关闭当前 activity。但是我需要在一个后退按钮中关闭警报对话框和 Activity click.I 我给出了下面的代码。
AlertDialog alertDialog;
public SampleTest() {
alertDialog = null;
}
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.search_branch_list);
LayoutInflater li = LayoutInflater.from(context);
View promptsView = li.inflate(R.layout.search_branch_predict, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set prompts.xml to alertdialog builder
alertDialogBuilder.setView(promptsView);
final EditText userInput = (EditText) promptsView
.findViewById(R.id.edittext);
final Button btnSearch = (Button) promptsView.findViewById(R.id.search_Button);
// create alert dialog
alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
}
}
您可以将 onBackPressed() 方法重写为:
@Override
public void onBackPressed() {
alertDialog.dismiss();
yourActivity.this.finish();
}
覆盖 activity 中的 onBackPressed() 并检查您的警报对话框是否打开,然后调用 finish 终止 activity。
@Override
public void onBackPressed() {
if(alertDialog.isShowing()){
alertDilaog.dismiss(); // this will dismiss your dialog
finish(); // this will kill your activity
}else{
super.onBackPressed();
}
}
试试这个,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
//replaces the default 'Back' button action
if(keyCode==KeyEvent.KEYCODE_BACK)
{
dialog.dismiss();
finish();
}
return true;
}
或
@Override
public void onBackPressed() {
dialog.dismiss();
finish();
}
编辑 1:
LayoutInflater li = LayoutInflater.from(context);
LinearLayout mainLayout = (LinearLayout) li.inflate(R.id.YOUR_LAYOU_ID_HERE, this);
mainLayout.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int eid = event.getAction();
switch (eid) {
case MotionEvent.ACTION_DOWN:
finish();
break;
}
return true;
}
});
这可能对你有帮助。