2014-08-27 55 views
2

像我的猫,我想问...如何将微调添加到上下文操作栏?

如何添加旋转的上下文动作栏像galery android?

现在我只可以设置选择 “ ”选择1“,” 2类的丝毫不差

here`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; 
     } 
    }); 

THX很多关于你的帮助......快乐编码

+0

辉煌,拯救了我的一天! – 2016-02-01 11:12:01

回答

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意味着[微调](http://developer.android.com/guide/topics/ui/controls/spinner.html)在下拉列表框中。 – 2015-05-12 06:51:30

1

对于常规的ActionBar这个工作对我来说Adding spinner to ActionBar (not Navigation但上下文动作栏是不是加工。这就是我的工作方式,看看它是否可以帮助你。

为了您的ListView监听器是这样的:

@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只是一个带有微调的根布局:

<?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"/>