2012-05-15 51 views
2

在我的應用我試圖打開一個對話框時活動開始,它有一個積極的按鈕。點擊該按鈕後,新的活動將打開。它的工作很好,下面的代碼。但是當我長按菜單按鈕或搜索按鈕對話框就會消失。即使我按菜單或搜索按鈕,如何使該對話框保持不變。謝謝。爲什麼對話框disapear當搜索按鈕按下

public class Sam3Activity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    TextView title = new TextView(this); 
    title.setText("DM2"); 
    title.setBackgroundColor(Color.DKGRAY); 
    title.setPadding(10, 10, 10, 10); 
    title.setGravity(Gravity.CENTER); 
    title.setTextColor(Color.WHITE); 
    title.setTextSize(20); 
    /* alert message */ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setCustomTitle(title); 

    builder.setMessage("dialog with message").setCancelable(false).setPositiveButton(
      "Ok", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.dismiss(); 
        Log.d("choose","on dissmiss"); 
       startActivity(new Intent(getApplicationContext(), 
                   StatisticDisplay.class));//second activity 
       } 
      }); 
    AlertDialog alert = builder.create(); 

    alert.show(); 
    } 
} 
+0

對不起,我是在檢查響應有點晚了。 – thej

+0

thej沒問題 –

回答

4

照管附加一個onKeyListenerDialog,在我的例子中,我只是把搜索鍵的按下照顧的鑰匙,但你應該明白了吧。如果你從來沒有像這樣的監聽器工作,返回true意味着該事件應傳播,是爲此照顧阻止系統壓制,同時顯示的對話框時,捕捉search關鍵的。

在任何其他情況下(關鍵不是在KEYCODE_SEARCH),它只是通過這個聽者彷彿根本不存在。 :)

... 
builder.setOnKeyListener(new OnKeyListener(){ 
      @Override 
      public boolean onKey(DialogInterface dialog, 
           int keyCode, 
           KeyEvent event) { 
       if (keyCode == KeyEvent.KEYCODE_SEARCH) return true; 
       return false; 
      } 
     }); 
... 

相關文章:

相關問題