平板开发之ActionMode

             首先看看我们要做的效果:

              

            点击选择项进入到ActionMode界面,如下:

          

         android系统提供的菜单不能满足要求,我们需要自定义菜单,这里只需要建立普通的菜单就可以了,无需上下文菜单,即:

         复写

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
//super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

该方法中利用main.xml布局文件,对item进行设置,main.xml文件内容:

       <menu xmlns:android="http://schemas.android.com/apk/res/android" >


    <item
        android:id="@+id/search"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/search"/>
    <item
        android:id="@+id/Multi_Select"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/multiselect"/>
    <item
        android:id="@+id/paste"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/paste"
        android:visible="false"/>
    <item
        android:id="@+id/mode"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/show_list"/>
    <item
        android:id="@+id/create"
        android:orderInCategory="100"
        android:title="@string/create"
        android:icon="@drawable/newfolder"
        android:showAsAction="collapseActionView"/>
     <item
        android:id="@+id/setting"
        android:orderInCategory="100"
        android:title="@string/setting"
        android:icon="@drawable/settings_actbar"
        android:showAsAction="collapseActionView"/>
</menu>

 配置ActionMode:

         private ActionMode.Callback mMultiSelectAction = new ActionMode.Callback(){

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

}


@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub

handler = MutiSelectHandler.getInstance(MainActivity.this);
            mode.setTitle(R.string.Multi_select_Options);


          menu.add(0, 12, 0, R.string.del);
            menu.add(0, 13, 0, R.string.copy);
            menu.add(0, 14, 0, R.string.cut);
            menu.add(0, 15, 0, R.string.share);


            contentfragment details = (contentfragment)getFragmentManager().findFragmentByTag("content");
            details.changeMultiSelectState(handler);
           // setmActionModeSelected(true);
return true;
}


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


@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;

}

          接下来在消息处理中mActionMode = startActionMode(mMultiSelectAction);

 难度不大,只是我还没明白,ActionMode默认的格式和屏幕的分辨率有关系,例如本平板是1024*600的,它会从右到左显示4个。

         进入ActionMode后,为什么显示的对号后面跟的是英文的DONE。难道是和模拟器的环境有关系?而我在平板上能否改换成“完成”中文字样,ActionMode的固定格式貌似你都无法改动。这又是属于什么样的设计呢?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值