Android 如何将微调器添加到上下文操作栏?
就像我的乳头一样,我想问 如何像galery android一样在上下文操作栏上添加微调器 现在我可以设置标题,如“1已选定”“2已选定” 这是我的密码Android 如何将微调器添加到上下文操作栏?,android,Android,就像我的乳头一样,我想问 如何像galery android一样在上下文操作栏上添加微调器 现在我可以设置标题,如“1已选定”“2已选定” 这是我的密码 public void lvMainOnLongItemClick(){ lvMain.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); lvMain.setMultiChoiceModeListener(new MultiChoiceModeListener() {
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;
}
});
public void lvmainLongItemClick(){
lvMain.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE\u model);
lvMain.setMultichoiceModelListener(新的MultichoiceModelListener(){
私有整数nr=0;
@凌驾
公共布尔onPrepareActionMode(操作模式,菜单){
//TODO自动生成的方法存根
返回false;
}
@凌驾
公共void onDestroyActionMode(ActionMode模式){
//TODO自动生成的方法存根
adapter.clearSelection();
}
@凌驾
公共布尔onCreateActionMode(ActionMode模式,菜单){
//TODO自动生成的方法存根
nr=0;
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。帆布_主菜单,菜单);
menuEdit=menu.findItem(R.id.menu\u编辑);
menuUpload=menu.findItem(R.id.menu\u上传);
menuUpload.setVisible(false);
返回true;
}
@凌驾
公共布尔值onActionItemClicked(ActionMode模式,菜单项){
//TODO自动生成的方法存根
开关(item.getItemId()){
案例R.id.菜单\编辑:
Toast.makeText(rbkMain.this,“Edit”,Toast.LENGTH_SHORT.show();
打破
案例R.id.菜单\取消:
Toast.makeText(rbkMain.this,“Cancel”,Toast.LENGTH_SHORT.show();
打破
案例R.id.菜单\副本:
Toast.makeText(rbkMain.this,“Copy”,Toast.LENGTH_SHORT.show();
打破
案例R.id.菜单\上传:
Toast.makeText(rbkMain.this,“Upload”,Toast.LENGTH_SHORT.show();
打破
违约:
Toast.makeText(rbkMain.this,“Yihaa”,Toast.LENGTH_SHORT.show();
打破
}
返回true;
}
@凌驾
public void onItemCheckedStateChanged(ActionMode模式、int位置、长id、布尔选中){
//TODO自动生成的方法存根
如果(选中){
nr++;
adapter.setNewSelection(位置,选中);
}否则{
nr--;
适配器。移除选择(位置);
}
如果(nr>1)
menuEdit.setVisible(false);
其他的
menuEdit.setVisible(true);
模式。设置标题(nr+“选定”);
}
});
lvMain.setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
lvMain.setItemChecked(位置,适配器.isPositionChecked(位置));
返回false;
}
});
非常感谢您的帮助…祝您在创建主要活动时愉快
// 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,而不仅仅是TRUE/FALSE
if (getSupportLoaderManager().hasRunningLoaders()) {
setProgressBarIndeterminateVisibility(Boolean.TRUE);
} else {
setProgressBarIndeterminateVisibility(Boolean.FALSE);
}
对于常规的ActionBar,这对我来说是有效的,但是对于上下文操作栏,它不起作用。这就是我如何使它起作用的,看看它是否能帮助你 对于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;
}
<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"/>
菜单xml应具有如下内容:
@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;
}
<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"/>
我相信OP的意思和下拉列表框中一样。太棒了,救了我一天!