Android 上下文操作模式

【Android 上下文操作模式】努力尽今夕,少年犹可夸。这篇文章主要讲述Android 上下文操作模式相关的知识,希望能为你提供帮助。
上下文操作模式和普通上下文菜单的区别在于操作模式的显示会覆盖视图顶层操作栏,而不是悬浮式的
通过在按钮上注册长按点击事件触发
上下文菜单 xml部分

< ?xml version=" 1.0" encoding=" utf-8" ?> < menu xmlns:android=" http://schemas.android.com/apk/res/android" xmlns:app=" http://schemas.android.com/apk/res-auto" > < item android:title=" 登录" android:id=" @+id/login" /> < item android:title=" 注册" android:id=" @+id/register" /> < /menu>

java部分
public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 按钮长按触发启动上下文操作模式 findViewById(R.id.btn).setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { startActionMode(MainActivity.this.ac); return false; } }); }// 实例化操作模式的回调类 ActionMode.Callback ac = new ActionMode.Callback() {// 初始化时触发 @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { getMenuInflater().inflate(R.menu.first, menu); return true; }@Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; }// 菜单项点击监听器 @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.login: Toast.makeText(MainActivity.this, " 你刚刚点了登录" , Toast.LENGTH_LONG).show(); break; case R.id.register: Toast.makeText(MainActivity.this, " 你刚刚点了注册" , Toast.LENGTH_LONG).show(); break; } return true; }@Override public void onDestroyActionMode(ActionMode mode) { // 结束时触发 } }; }


    推荐阅读