android listview singlechoice,android – 将ListView choiceMode从singleChoice更改为multipleChoiceModal...

我在我的一个程序中使用过它

我们是ListView.CHOICE_MODE_MULTIPLE_MODAL然后是lv.setMultiChoiceModeListener(new ModeCallBack());

public class ModeCallBack implements ListView.MultiChoiceModeListener{

View mSelectView;

TextView mSelectedCount;

ArrayList mCheckedItems;

@Override

public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());

SharedPreferences.Editor edit = pref.edit();

if(item.getItemId() == R.id.bowler_delete){

for(int i=0; i

long id = mCheckedItems.get(i);

getActivity().getContentResolver().delete(BowlersDB.CONTENT_URI,BowlersDB.ID+"="+id,null);

}

}else if(item.getItemId() == R.id.bowler_add_ball){

if(mCheckedItems.size() > 1){

Toast.makeText(getActivity(),"Can only add bowling balls to one bowler at a time",Toast.LENGTH_SHORT).show();

}else{

edit.putLong(Preferences.BOWLER_SELECTED_FOR_BALL,mCheckedItems.get(0)).commit();

ListFragment lf = new ManufacturersList();

FragmentTransaction ft;

ft = getFragmentManager().beginTransaction();

ft.replace(R.id.frameOne, lf).addToBackStack(null).commit();

//mRemover.rFragment();

}

}else if(item.getItemId() == R.id.add_bowler_to_team){

for(int i=0; i

long id = mCheckedItems.get(i);

ContentValues values = new ContentValues();

values.put(TeamBowlers.BOWLER_ID,id);

values.put(TeamBowlers.TEAM_ID,pref.getLong(Preferences.TEAM_SELECTED,1));

getActivity().getContentResolver().insert(TeamBowlers.CONTENT_URI, values);

}

FragmentManager fm = getFragmentManager();

fm.popBackStack();

}

mode.finish();

return true;

}

@Override

public boolean onCreateActionMode(ActionMode mode, Menu menu) {

MenuInflater inflate = getActivity().getMenuInflater();

if(fromTeam){

inflate.inflate(R.menu.bowlers_team_action_menu, menu);

}else{

inflate.inflate(R.menu.bowler_action_menu, menu);

}

if(mSelectView == null){

mSelectView = (ViewGroup)LayoutInflater.from(getActivity()).inflate(R.layout.select_count_layout,null);

mSelectedCount = (TextView)mSelectView.findViewById(R.id.count_tv);

}

if(mCheckedItems == null){

mCheckedItems = new ArrayList();

}

mode.setCustomView(mSelectView);

return true;

}

@Override

public void onDestroyActionMode(ActionMode mode) {

mCheckedItems = null;

}

@Override

public boolean onPrepareActionMode(ActionMode mode, Menu menu) {

if(mSelectView == null){

mSelectView = (ViewGroup)LayoutInflater.from(getActivity()).inflate(R.layout.select_count_layout,null);

mSelectedCount = (TextView)mSelectView.findViewById(R.id.count_tv);

}

if(mCheckedItems == null){

mCheckedItems = new ArrayList();

}

return true;

}

@Override

public void onItemCheckedStateChanged(ActionMode mode, int position,long id, boolean checked) {

final int count = lv.getCheckedItemCount();

mSelectedCount.setText(String.valueOf(count));

if(checked){

mCheckedItems.add(id);

}else{

mCheckedItems.remove(id);

}

}

}

这允许单选单列表视图单击和长按多个选择.这些都来自ICS消息传递应用程序,因此您也可以浏览它

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值