2014-02-06 135 views
0

下面是我的子菜單按鈕的代碼,我試圖使它刪除註釋並返回到主列表視圖。現在刪除選項被稱爲「紅色」。如何通過菜單刪除項目?

我從我的主要活動中複製了我的刪除代碼,認爲它會起作用,但事實並非如此。我很新的android編碼,所以幫助將不勝感激。

這是我的主要Activity.java如何刪除

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenuInfo menuInfo) { 

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; 
    currentNoteId = (int)info.id; 
    menu.add(0, MENU_DELETE_ID, 0, "Delete"); 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 

    if (item.getItemId() == MENU_DELETE_ID) { 
     Noteitem note = notesList.get(currentNoteId); 
     datasource.remove(note); 
     refreshDisplay(); 

    } 

    return super.onContextItemSelected(item); 
} 

這是我爲我的NoteEditorActivity.java 代碼再次聲明,我試圖刪除,但我似乎無法弄清楚如何從子菜單中刪除註釋。隨時隨地http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

+0

那麼,有什麼問題? –

+0

@mohammed_momn我試圖刪除一個項目,但代碼不起作用。 –

+2

我想你錯過了switch語句中的中斷 –

回答

0

在交換機的情況下認沽break語句

switch (item.getItemId()) 
    { 
     case R.id.action_exit: 
      EditText et = (EditText)findViewById(R.id.noteText); 
      if (et.length() > 0){ 
       saveAndFinish(); 
      }else{ 
       finish(); 
      } 
     //you are missing this!!! 
     break; 

     case R.id.menu_red: 
      datasource.remove(note); 
      finish(); 
     break; 

     default: 
      return super.onOptionsItemSelected(item); 
     break; 
    } 

嘗試在這裏也閱讀本我只是覺得它是空的.. 你肯定錯過了那裏的break語句,但我想這不是你的筆記在點擊菜單項後沒有被刪除的問題。你是在「先前」(以後臺)活動保存你的筆記嗎?如果是這樣,你可能會嘗試修改setActivityResult()呼叫的返回碼(或者爲該意圖添加一些附加項),然後在您的onActivityResult()回撥中檢查它。 因爲現在每當您通過後退關閉活動時,筆記被保存(調用saveAndFinish()方法); 請更好地描述你實際上在哪裏保存筆記(對DB等),以及你想刪除它們的位置。我可能會提供給你一些代碼片段。

0

它只是weird..you不調用notesList.add()方法在你的代碼,所以:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.action_exit: 
     EditText et = (EditText)findViewById(R.id.noteText); 
     if (et.length() > 0) { 
      saveAndFinish(); 
     } 
      else 
     { 
     finish(); 
      } 

    case R.id.menu_red: 
     currentNoteId = (int) MENU_DELETE_ID; 
     datasource.remove(note); 
     return true; 


     default: 
      return super.onOptionsItemSelected(item); 
    } 
+0

你好@simekadam我有更新了代碼,希望能夠揭示更多關於我如何從主要活動與noteeditor中刪除的信息 –