2014-08-27 4 views
2

как мой титл, я хочу спросить ...Как добавить прядильщик в контекстную панель действий?

Как добавить прядильщик в контекстную панель действий, как в галерее android?

теперь я просто не могу установить Tittle как "1 выбранный" "2 выбранный"

мой код здесь `s

public void lvMainOnLongItemClick(){ 
    lvMain.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 
    lvMain.setMultiChoiceModeListener(new MultiChoiceModeListener() { 
     private int nr = 0; 
     @Override 
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public void onDestroyActionMode(ActionMode mode) { 
      // TODO Auto-generated method stub 
      adapter.clearSelection(); 
     } 

     @Override 
     public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
      // TODO Auto-generated method stub 
      nr = 0; 
      MenuInflater inflater = getMenuInflater(); 
      inflater.inflate(R.menu.canvas_main, menu); 
      menuEdit = menu.findItem(R.id.menu_edit); 
      menuUpload = menu.findItem(R.id.menu_upload); 
      menuUpload.setVisible(false); 
      return true; 
     } 

     @Override 
     public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
      // TODO Auto-generated method stub 
      switch (item.getItemId()) { 
      case R.id.menu_edit: 
       Toast.makeText(rbkMain.this, "Edit", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.menu_cancel: 
       Toast.makeText(rbkMain.this, "Cancel", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.menu_copy: 
       Toast.makeText(rbkMain.this, "Copy", Toast.LENGTH_SHORT).show(); 
       break; 
      case R.id.menu_upload: 
       Toast.makeText(rbkMain.this, "Upload", Toast.LENGTH_SHORT).show(); 
       break; 
      default: 
       Toast.makeText(rbkMain.this, "Yihaa", Toast.LENGTH_SHORT).show(); 
       break; 
      } 
      return true; 
     } 

     @Override 
     public void onItemCheckedStateChanged(ActionMode mode, int position,long id, boolean checked) { 
      // TODO Auto-generated method stub 
      if (checked) { 
       nr++; 
       adapter.setNewSelection(position, checked); 
      } else { 
       nr--; 
       adapter.removeSelection(position); 
      } 
      if(nr > 1) 
       menuEdit.setVisible(false); 
      else 
       menuEdit.setVisible(true); 

      mode.setTitle(nr + " selected"); 
     } 
    }); 

    lvMain.setOnItemLongClickListener(new OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) { 
      lvMain.setItemChecked(position, adapter.isPositionChecked(position)); 
      return false; 
     } 
    }); 

ТНХ много для вашей помощи ... счастливым кодирования

+0

Блестящий, спасенный мой день! –

ответ

0

В OnCreate основной деятельности

// This has to be called before setContentView and you must use the 
// class in android.support.v4.view and NOT android.view 

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 

Чтобы показать/скрыть прогресс в панели действий. Обратите внимание, с ActionBarSherlock вы должны использовать boolean.TRUE/FALSE, а не только истина/ложь .........

if (getSupportLoaderManager().hasRunningLoaders()) { 
    setProgressBarIndeterminateVisibility(Boolean.TRUE); 
} else { 
    setProgressBarIndeterminateVisibility(Boolean.FALSE); 
} 
+0

Я считаю, что OP означает [Spinner] (http://developer.android.com/guide/topics/ui/controls/spinner.html), как в выпадающем списке. –

1

Для регулярной ActionBar это работало для меня Adding spinner to ActionBar (not Navigation но для бара контекстных действий не было за работой. Так я сделал это, посмотрим, поможет ли он вам.

Для вашего списке следует слушателю что-то вроде этого:

@Override 
     public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
      mode.getMenuInflater().inflate(YOUR_MENU_XML, menu); 
      filterSpinner = (Spinner) MenuItemCompat.getActionView(menu.findItem(R.id.menu_overlay_spinner)); 
      filterSpinner.setAdapter(send2Adapter); 
      return true; 
     } 

XML-меню должно иметь что-то вроде этого:

<item 
    android:icon="@drawable/filter" 
    android:id="@+id/menu_overlay_spinner" 
    android:title="Spinner" 
    app:actionViewClass="android.widget.Spinner" 
    app:showAsAction="ifRoom" 
    android:actionLayout="@layout/YOUR_ACTION_LAYOUT"/> 

Наконец actionLayout просто макет с Spinner как корень:

<?xml version="1.0" encoding="utf-8"?> 
<Spinner xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"/> 
Смежные вопросы