我为按钮设置上下文操作模式为什么点击 上下文操作 按钮就马上闪退呢,代码和老师的应该一样的
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.view.ActionMode; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //ctx_button:演示contextmenu //注册 // registerForContextMenu(findViewById(R.id.ctx_btn)); //创建 //菜单项的操作 //为按钮设置上下文操作模式 //1.实现ActionModeCallBack //2.在view的长按事件中去启动上下文模式 findViewById(R.id.ctx_btn).setOnLongClickListener(new View.OnLongClickListener(){ @Override public boolean onLongClick(View v) { startActionMode((android.view.ActionMode.Callback) cb); return false; } }); } ActionMode.Callback cb = new ActionMode.Callback(){ //创建,在启动上下文操作模式(startActionMode(Callback))时调用 @Override public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { Log.e("TAG","创建"); getMenuInflater().inflate(R.menu.context,menu); return true; } //在创建方法后进行使用 @Override public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { Log.e("TAG","准备"); return false; } @Override public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { Log.e("TAG","点击"); switch (menuItem.getItemId()){ case R.id.delete: Toast.makeText(MainActivity.this,"删除",Toast.LENGTH_SHORT).show(); break; case R.id.opera1: Toast.makeText(MainActivity.this,"操作1",Toast.LENGTH_SHORT).show(); break; case R.id.opera2: Toast.makeText(MainActivity.this,"操作2",Toast.LENGTH_SHORT).show(); } return true; } //上下文操作模式结束时调用 @Override public void onDestroyActionMode(ActionMode actionMode) { Log.e("TAG","结束"); } }; // @Override // public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { // getMenuInflater().inflate(R.menu.context,menu); // } //创建optionmenu @Override public boolean onCreateOptionsMenu(Menu menu) { //加载菜单资源 getMenuInflater().inflate(R.menu.option,menu); return true; } // @Override // public boolean onContextItemSelected(MenuItem item) { // switch (item.getItemId()){ // case R.id.delete: // Toast.makeText(this,"删除",Toast.LENGTH_SHORT).show(); // break; // case R.id.opera1: // Toast.makeText(this,"操作1",Toast.LENGTH_SHORT).show(); // break; // case R.id.opera2: // Toast.makeText(this,"操作2",Toast.LENGTH_SHORT).show(); // } // return super.onContextItemSelected(item); // } //OptionMenu菜单项的选中方法 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.save: Toast.makeText(this,"保存",Toast.LENGTH_SHORT).show(); break; case R.id.setting: Toast.makeText(this,"设置",Toast.LENGTH_SHORT).show(); break; case R.id.exit: finish(); break; } return super.onOptionsItemSelected(item); } }
4
收起
正在回答 回答被采纳积分+1
1回答
1.Android 零基础入门
- 参与学习 人
- 提交作业 1789 份
- 解答问题 2907 个
Android大楼Java起,本阶段是Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始入门Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星