2014-03-14 33 views
0

我打開警報對話框活動。一切都很好,唯一的問題是當用戶在AndroidCommand活動中按下時 - alertdialog完美打開,但再次按回按鈕 - 只是對話框關閉,而不是對話框活動。所以它需要兩次後退才能返回到AndroidCommand活動。取消對話框時,如何關閉活動對話框?如何在後退時使用警報對話框關閉活動?

public class AndroidCommand extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (KeyEvent.KEYCODE_BACK == event.getKeyCode()) { 

      Intent intent = new Intent(AndroidCommand.this, MainActivity.class); 
      startActivity(intent); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final String items[] = {"Movie","Music","Book"}; 
     AlertDialog.Builder ab=new AlertDialog.Builder(MainActivity.this); 
     ab.setTitle("Dialog Title"); 
     ab.setItems(items, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface d, int choice) { 
       if(choice == 0) { 

       } 
       else if(choice == 1) { 

       } 
       else if(choice == 2) { 

       } 
      } 
     }); 
     ab.show(); 
    } 
+0

光潔度(); //調用一次 –

回答

0

以下是完整的解決方案

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     if (!isBack) 
      showDialog(); 
     else 
      isBack = true; 
     return true; 
    } 
    else 
     return super.onKeyDown(keyCode, event); 
} 

只是初始化isBack =假在oncreatemethod

void showDialog() { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Alert"); 
    builder.setMessage("Are you sure you want to exit?"); 
    builder.setPositiveButton("OK", new OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 


      finish(); 
     } 
    }); 

    builder.setNegativeButton("Cancel", new OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      isBack = false; 
     } 
    }); 
    builder.show(); 
} 
+0

但是ap進入公共布爾onKeyDown(int keyCode,KeyEvent event){(keyCode == KeyEvent.KEYCODE_BACK){{第二次返回rpess不是單次第一次只顯示dailog當我點擊返回只有dailog刪除當我點擊第二次母雞dailog關閉 – user3416078

+0

你的dailog不顯示選項菜單likemy dailog – user3416078

+0

如何添加列表中的數組列表在你的dailog菜單??? – user3416078

0

呼叫

finish() 

方法上回壓

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (KeyEvent.KEYCODE_BACK == event.getKeyCode()) { 

    finish(); 
    return true; 

} 
return super.onKeyDown(keyCode, event); 
} 
0

只重寫,

 @Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
// super.onBackPressed(); 


new AlertDialog.Builder(this) 
      .setTitle("Dictation Alert") 
      .setIcon(R.drawable.galleryalart) 
      .setMessage("Do You want save dictation??") 
      .setNegativeButton(android.R.string.no, new OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int   which) { 

     //do other stuff here  
     finish() 
    } 
     }) 
.setPositiveButton("yes", new OnClickListener() { 

    //do other stuff here  
    finish() 
    }).show 
    } 
相關問題