2012-02-14 74 views
0

我有一個方法deleteDilaog(它顯示對話框,yes和no選項。點擊後是它的東西,點擊時沒有它取消對話框),它要麼叫購買錄音按鈕或選擇選項菜單中的項目。問題是,結果是不一樣的?它從菜單中選擇時工作正常,但當點擊一個按鈕時,它只是顯示對話框,不管我點擊什麼,什麼都沒有發生?onButtonClick與onMenuItemSelected -----不一樣的結果

按鈕:

private void RemoveAll(){ 

Button button=(Button) findViewById(R.id.button2); 
button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     deleteDialog(); 

    } 
}); 

} 

菜單項:

@Override 
public boolean onMenuItemSelected(int id, MenuItem item) { 
    mDeleteId=item.getItemId(); 
    switch(item.getItemId()) { 
    case INSERT_ID: 
     addItem(); 
     return true; 
    case DELETE_ALL_ID: 
     deleteDialog(); 
     break; 

    } 

    return super.onMenuItemSelected(id, item); 
} 

deleteDialog方法:

private void deleteDialog() { 
    AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
    dialog.setMessage 

(CONFIRM_DIALOG_STRING).setCancelable(false).setPositiveButton 

(POSITIVE, new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int 

which) { 
      switch (mDeleteId) { 
      case DELETE_ALL_ID: 
       mDbHelper.removeAllLists(); 
       fillData(); 
       break; 
      case DELETE_ID: 
       Cursor c = (Cursor) 

getListView().getAdapter().getItem(which); 
       mDbHelper.removeList 

(mItemId); 
       c.requery(); 
       break; 

      } 

     } 
    }).setNegativeButton(NEGATIVE, new OnClickListener() 

{ 

     @Override 
     public void onClick(DialogInterface dialog, int 

which) { 

      dialog.cancel(); 
     } 
    }); 
    AlertDialog alertDialog = dialog.create(); 
    alertDialog.show(); 

} 
+0

使用dialog.dismiss()代替dialog.cancel() – Enigma 2012-02-14 10:23:09

+0

編號相同的結果,工作槽菜單,不使用按鈕 – pedja 2012-02-14 10:56:55

回答

0

一個對話框,首先不應該被稱爲已編碼。 使我們的Activity.onCreateDialog初始化和維護對話框生命週期

活動提供了一個設施來管理創建,保存和恢復對話框。另請參見onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int)和dismissDialog(int)。

+0

林不知道該怎麼做。即時通訊新的android開發和所有的代碼是從即時通訊使用學習的書。在書中一切都由菜單處理,但現在我想刪除菜單,並添加在篩選按鈕 – pedja 2012-02-14 11:08:24

0

看起來問題是與mDeleteID。它在OnMenuItemSelected中設置,但不在button2的onClick監聽器中。

我猜開關(mDeleteID)落下通過點擊按鈕時。

+0

我不這麼認爲。 mDeleteID只是列表中的項目,因此onMenuItemSelected方法可以在刪除和添加之間進行選擇。 corect我,如果我錯了, – pedja 2012-02-14 11:00:46

+0

在你DeleteDialog的SetPositive onClickListener你決定取決於mDeleteID的價值作用,但這只是在onMenuItemSelected設定,而不是在單擊按鈕時,這樣的結果可能取決於您在其中選擇的順序不同菜單項/按鈕。 – CjS 2012-02-14 11:18:48

+0

是的,謝謝 – pedja 2012-02-14 12:13:32

0

如果按鈕沒有設置mDeleteId的值。

相關問題