2014-02-19 25 views
1

我試圖通過ActionMode在ActionBar中顯示一個菜單項,但ActionMode和菜單項都不顯示。我的ActionMode不膨脹onCreateActionMode方法中的菜單

在ProvasActivity上製作ListView的LongClickListener。

this.listView.setLongClickable(true); 
    this.listView.setOnItemLongClickListener(new OnItemLongClickListener() { 
     public boolean onItemLongClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      Log.d(null, "ListView Pressionado"); 

      // O action mode está ativado no momento? 
      if (mActionMode != null) { 
       // Cancela o evento 
       return false; 
      } 
      selectedItem = position; 

      mActionMode = ProvasActivity.this 
        .startActionMode(mActionModeCallback); 
      view.setSelected(true); 
      return true; 
     } 
    }); 

private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() { 

     @Override 
     public boolean onCreateActionMode(ActionMode mode, Menu menu) { 

      // Infla o recurso do menu a ser exibido 
      MenuInflater inflater = mode.getMenuInflater(); 
      inflater.inflate(R.menu.linha_selecionada, menu); 

      Log.d(null, "Menu Inflado"); 

      return false; 
     } 

     @Override 
     public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 

      switch (item.getItemId()) { 
      case R.id.action_remover: 
       show(); 
       // Fecha a Action quando executada 
       mode.finish(); 
       break; 

      default: 
       break; 
      } 

      return false; 
     } 

     @Override 
     public void onDestroyActionMode(ActionMode mode) { 
      // Anula o ActionMode 
      mActionMode = null; 
      selectedItem = -1; 

     } 

     @Override 
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
      return false; 
     } 

     private void show() { 
      Toast.makeText(ProvasActivity.this, 
       "show", Constants.TEMPO_TOAST).show(); 
      Log.d(null, "show()"); 
      } 

    }; 

我對顯示器的ActionMode項目(佈局/菜單/ linha_selecionada)菜單:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/action_remover" 
     android:orderInCategory="100" 
     android:showAsAction="never" 
     android:title="@string/amazenadas"/> 
</menu> 

我ProvasActivity(佈局/ provas_armazenadas.xml)的觀點:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/white" 
    android:orientation="vertical" 
    android:paddingTop="50dp" > 

    <ListView 
     android:id="@+id/listview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@color/white" 
     android:dividerHeight="4px"/> 

</RelativeLayout> 

我正在嘗試通過Vogella教程。

http://www.vogella.com/tutorials/AndroidListView/article.html

回答

4

你返回在ActionMode.Callback.onCreateActionModefalse

From the docs:

返回

真,如果操作模式應該被創建,假,如果進入此模式 應中止

+0

+10你是救世主! –