listview 的 selection mode 训练小例子

  1. package com.example.listviewselectmode; 
  2. import android.R.integer; 
  3. import android.os.Bundle; 
  4. import android.app.ListActivity; 
  5. import android.app.ListActivity; 
  6. import android.view.ActionMode; 
  7. import android.view.Menu; 
  8. import android.view.MenuItem; 
  9. import android.widget.AbsListView.MultiChoiceModeListener; 
  10. import android.widget.ArrayAdapter; 
  11. import android.widget.ListView; 
  12. import android.widget.Toast; 
  13.  
  14. public class MainActivity extends ListActivity { 
  15.      
  16.     String[] itemsStrings={"a","b","c","d","e"}; 
  17.  
  18.     @Override 
  19.     protected void onCreate(Bundle savedInstanceState) { 
  20.          
  21.         super.onCreate(savedInstanceState); 
  22.         ListView listView=getListView(); 
  23.         //注意此处没有setContentView那一项 
  24.         listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 
  25.         listView.setMultiChoiceModeListener(new ModeChoice()); 
  26.         //注意该adapter的第二个参数为android.R.layout.simple_list_item_checked 
  27.         ArrayAdapter<String> adapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_checked, itemsStrings); 
  28.         setListAdapter(adapter); 
  29.     } 
  30.      
  31.     @Override 
  32.     protected void onPostCreate(Bundle savedInstanceState) { 
  33.         // TODO Auto-generated method stub 
  34.          
  35.         getActionBar().setTitle("long press to select"); 
  36.         super.onPostCreate(savedInstanceState); 
  37.          
  38.     } 
  39.  
  40.     class ModeChoice implements MultiChoiceModeListener{ 
  41.  
  42.         @Override 
  43.         public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
  44.             // TODO Auto-generated method stub 
  45.             int count=getListView().getCheckedItemCount(); 
  46.             switch (item.getItemId()) { 
  47.             case R.id.share: 
  48.                 Toast.makeText(getApplicationContext(), "you share "+count+"项"1000).show(); 
  49.                 break
  50.             default
  51.                   Toast.makeText(MainActivity.this"Clicked " + item.getTitle(), 
  52.                             Toast.LENGTH_SHORT).show(); 
  53.                 break
  54.             } 
  55.              
  56.             return true
  57.         } 
  58.  
  59.         private void setSubtitle(ActionMode mode) { 
  60.             // TODO Auto-generated method stub 
  61.             int count=getListView().getCheckedItemCount(); 
  62.             switch (count) { 
  63.             case 0
  64.                 mode.setSubtitle(""); 
  65.                 break
  66.             case 1
  67.                 mode.setSubtitle("you select one item"); 
  68.                 break
  69.             default
  70.                 mode.setSubtitle("you select"+count+"items"); 
  71.                 break
  72.             } 
  73.         } 
  74.  
  75.         @Override 
  76.         public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
  77.             // TODO Auto-generated method stub 
  78.             getMenuInflater().inflate(R.menu.main, menu); 
  79.             mode.setSubtitle("select item"); 
  80.             setSubtitle(mode); 
  81.             //此处需注意需要返回true 
  82.             return true
  83.         } 
  84.  
  85.         @Override 
  86.         public void onDestroyActionMode(ActionMode mode) { 
  87.             // TODO Auto-generated method stub 
  88.              
  89.         } 
  90.  
  91.         @Override 
  92.         public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
  93.             // TODO Auto-generated method stub 
  94.              
  95.             return false
  96.         } 
  97.  
  98.         @Override 
  99.         public void onItemCheckedStateChanged(ActionMode mode, int position, 
  100.                 long id, boolean checked) { 
  101.             // TODO Auto-generated method stub 
  102.             setSubtitle(mode); 
  103.         } 
  104.          
  105.          
  106.     } 
  107.  
  108. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值