11 ContextMenu 上下文菜单按钮
来源:互联网 发布:python datatime 编辑:程序博客网 时间:2024/06/07 00:16
ContextMenu 上下文菜单
- 在res下的menu里写菜单项
- 在逻辑代码中 写OnCreateContextMenu() 方法 将菜单项添加到菜单
- 对菜单项进行监听 onContextItemSelected()
- //获取ListView 当前item的下标
- AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
- 4,note:registerForContextMenu(tv);进行注册上下文菜单给控件
图标不显示参考不显示菜单按钮解决方法
- 案例1 :给普通TextView设置
- xml代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.fmy.context.MainActivity" > <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /></RelativeLayout>
- java代码:
package com.fmy.context;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.ContextMenu;import android.view.MenuItem;import android.view.View;import android.view.ContextMenu.ContextMenuInfo;import android.widget.TextView;public class MainActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); registerForContextMenu(tv); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.main, menu); } @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.green: tv.setTextColor(Color.GREEN); break; case R.id.red: tv.setTextColor(Color.RED); break; default: break; } return super.onContextItemSelected(item); }}
- 效果:
- 长按TextView 弹出菜单
- 案例二: listview和按钮
xml代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.fmy.context.MainActivity" > <item android:id="@+id/action_delete" android:orderInCategory="100" android:showAsAction="never" android:title="删除信息"/></menu>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.fmy.context.MainActivity" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></RelativeLayout>
java代码:
package com.fmy.context;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.LayoutInflater;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView.AdapterContextMenuInfo;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity { private TextView tv; private ListView lv; private int pos; private List<String> list; private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); list = new ArrayList<String>(); for (int i = 0; i < 50; i++) { list.add("" + i); } adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list); lv.setAdapter(adapter); registerForContextMenu(lv); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // TODO Auto-generated method stub super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.menu.main, menu); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; pos = info.position; } @Override public boolean onContextItemSelected(MenuItem item) { list.remove(pos); adapter.notifyDataSetChanged(); return super.onContextItemSelected(item); }}
效果图:
0 0
- 11 ContextMenu 上下文菜单按钮
- 上下文菜单(ContextMenu)
- ContextMenu上下文菜单
- 使用上下文菜单ContextMenu
- 上下文菜单ContextMenu
- Android--ContextMenu上下文菜单
- 【Android】上下文菜单contextMenu
- ContextMenu(上下文菜单)
- ContextMenu上下文菜单
- ContextMenu上下文菜单
- ContextMenu上下文菜单
- Contextmenu上下文菜单
- Android上下文菜单 ContextMenu
- Android-ContextMenu上下文菜单
- 使用上下文菜单ContextMenu
- ContextMenu---上下文菜单
- ContextMenu上下文菜单
- 上下文菜单ContextMenu
- Introducing OctoberCMS系统——一个基于Laravel-based CMS
- SpringMVC学习4
- 获奖名单
- Python2.7遍历读取中文目录
- 大数据读hdfs文件笔记
- 11 ContextMenu 上下文菜单按钮
- 【LightOJ】1331 - Agent J(数论)
- 如何查看SQL2000数据库版本
- 最新的mysql5.7.14下载及安装指南
- jquery心形点赞关注效果
- UVA - 10125 Sumsets (预处理 + 二分)
- 工厂模式学习笔记
- TEA和XxTEA跨平台加密算法
- CSDN如何转载别人的博客