简单组件长按d出上下文菜单总结
第一步:在程序合适位置给一个控件注册上下文菜单
组件可以是按钮,文本框,还可以是列表条目,下以listView列表为例
ListView contentList=(ListView) findViewById(R.id.blackname_manager_listV)
contentList.setAdapter(mListAdapter)
registerForContextMenu(contentList)
第二步:在activity中复写onCreateContextMenu方法,并添加菜单项目。public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo)
menu.add(0, MENU_UPDATE, 0, "修改信息")
menu.add(0, MENU_ADD, 0, "删除记录")
}
第三步:在activity中复写onContextItemSelected方法,处理菜单条目事件public boolean onContextItemSelected(MenuItem item) {//获取上下文菜单适配器AdapterContextMenuInfo cmi(AdapterContextMenuInfo)item.getMenuInfo()
//获取被选择的菜单位置int posMenu=cmi.position//将菜单项与列表视图的条目相关联items(BlackNumber)mListAdapter.getItem(posMenu)switch(item.getItemId()){case MENU_UPDATE://执行该菜单条目的业务逻辑breakcase MENU_ADD://执行该菜单条目的业务逻辑
你可以写一个BaseActivity,所有需要用到顶部菜单的Activity都继承于BaseActivity,在BaseActivity的onStart方法中去初始化顶部菜单栏,findViews、addListeners等。如果是需要子类去完成的,你可以在类里面添加几个抽象方法,把BaseActivity定义成abstract class.所有子类的外层视图都需要include顶部菜单栏的xml视图。
需要注意的是,onStart方法会重复调用,你需要判断你的titleLayout 是否为空,为空才初始化,这样避免不必要的代码开销。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)