ActionMode 的使用(參考)

    ActionMode是Android 3.0以後出現的Android 3.0以前,我們處理列表的長按事件經常使用Context Menu,Android3.0以後,我們有了新的選擇:ActionMode。下圖左邊效果爲Context Menu右邊效果爲ActionMode。


 1、實現ActionMode.Callback接口,並處理ActionMode的生命週期,ActionMode的生命週期如下圖:

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


@Override

public boolean onPrepareActionMode(ActionMode mode, Menu menu) {

return false;

}


@Override

public void onDestroyActionMode(ActionMode mode) {

// TODO Auto-generated method stub

}


@Override

public boolean onCreateActionMode(ActionMode mode, Menu menu) {

MenuInflater inflater = mode.getMenuInflater();

inflater.inflate(R.menu.actionmode, menu);

return true;

}


@Override

public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

boolean ret = false;

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

mode.finish();

ret = true;

}

return ret;

}

};

2.當你點擊觸發時,應調用startActionMode()方法:

someView.setOnLongClickListener(new View.OnLongClickListener() {

    // Called when the user long-clicks on someView

    public boolean onLongClick(View view) {

        if (mActionMode != null) {

            return false;

        }

  

        mActionMode = getActivity().startActionMode(mActionModeCallback);

        view.setSelected(true);

        return true;

    }

});

簡單完成後效果圖大概這樣,wKioL1R0GEbSXCkTAACOfluI4is717.jpg



但有的公司需求不滿足於左上角的勾勾  ,  可自行刪除這個勾勾,具體方法如下:

<style name="AppTheme" parent="android:Theme.Holo">
 <item name="android:actionModeCloseButtonStyle">@style/NoCloseButton</item>
</style>

<style name="NoCloseButton" parent="@android:style/Widget.ActionButton.CloseMode">
 <item name="android:visibility">gone</item>
</style>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章