Android 上下文操作模式
Posted esrevinud
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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) {
// 结束时触发
}
};
}
以上是关于Android 上下文操作模式的主要内容,如果未能解决你的问题,请参考以下文章
onActivityResult 未在 Android API 23 的片段上调用