为ListView创建ContextMenu
来源:互联网 发布:p2p网络摄像头软件app 编辑:程序博客网 时间:2024/05/22 07:02
ContextMenu称为上下文菜单,一般在控件上长按时弹出。今天我们学习ContextMenu的用法,这里与listview相结合,先在ListView显示几个Item,然后在Item上长按,弹出一个菜单(就是ContextMenu),点击菜单上的项目,提示刚才长按的Item的Position。
main.xml文件
菜单有3个条目,在/res/menu/test_menu.xml中定义,和OptionMenu差不多,只是没有Icon
main.xml文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent" android:layout_height="fill_parent"
- android:orientation="vertical">
- <TextView android:id="@+id/text" android:text="zzz"
- android:textSize="18sp" android:textColor="#FFFFFF"
- android:layout_width="fill_parent" android:layout_height="wrap_content"/>
- <ListView android:id="@+id/list"
- android:layout_width="fill_parent" android:layout_height="fill_parent">
- </ListView>
- </LinearLayout>
菜单有3个条目,在/res/menu/test_menu.xml中定义,和OptionMenu差不多,只是没有Icon
- package com.hello.menu;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.ContextMenu;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.ContextMenu.ContextMenuInfo;
- import android.widget.AdapterView.AdapterContextMenuInfo;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- import android.widget.TextView;
- public class ApiDemos extends Activity {
- /** Called when the activity is first created. */
- private TextView mTextView;
- private ListView mListView;
- private String [] values;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mTextView = (TextView) findViewById(R.id.text);
- //下面的代码用于初始化一些数据
- values = new String[30];
- StringBuilder sb = new StringBuilder("z");
- for (int i = 0; i < values.length; i++) {
- sb.append(i);
- values[i] = sb.toString();
- }
- mListView = (ListView) findViewById(R.id.list);
- mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values));
- mTextView.setText(String.valueOf(mListView.getAdapter().getCount()));
- //为ListView注册ContextMenu
- registerForContextMenu(mListView);
- }
- //创建ContextMenu
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenuInfo menuInfo) {
- // TODO Auto-generated method stub
- if (v.getId() == R.id.list) {
- MenuInflater inflater = getMenuInflater();
- menu.setHeaderTitle("contextView sample").setHeaderIcon(R.drawable.icon);
- inflater.inflate(R.menu.test_menu, menu);
- }
- super.onCreateContextMenu(menu, v, menuInfo);
- }
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- // TODO Auto-generated method stub
- if (item.getMenuInfo() instanceof AdapterContextMenuInfo) {
- AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
- //处理菜单的点击事件
- switch (item.getItemId()) {
- case R.id.call:
- mTextView.setText(item.getTitle().toString() + menuInfo.position);
- break;
- case R.id.cc:
- mTextView.setText(item.getTitle().toString() + menuInfo.position);
- break;
- case R.id.poweroff :
- mTextView.setText(item.getTitle().toString() + menuInfo.position);
- break;
- }
- }
- return super.onContextItemSelected(item);
- }
- }
- 为ListView创建ContextMenu
- 为ListView创建ContextMenu
- 为listview的每条list item创建contextMenu
- 注册为ContextMenu的listView如何获得selectedItemPosition
- listview和ContextMenu总结
- Android ListView Item ContextMenu
- ListView onItemLongClick 弹出ContextMenu
- 为RecyclerView添加ContextMenu
- 创建快捷菜单--ContextMenu
- MFC 创建ContextMenu
- 创建OptionMenu和ContextMenu
- Android ListView上的ContextMenu
- ListView之ContextMenu无法弹出
- 为RecycleView添加ContextMenu支持
- 情景菜单ContextMenu的创建
- C#简单使用:ListView中使用ContextMenu
- Creating a ContextMenu on a ListView
- contextMenu OptionMenu ListView DatePicker联合使用
- zoj 1879 Jolly Jumpers
- 虚拟机ubuntu下使用NFS使用
- zoj 1904 Beavergnaw
- 伽马贝塔函数
- zoj 1915 Above Average
- 为ListView创建ContextMenu
- LuaPlus新手使用方法(转)
- 自己的连手的jquery2
- zoj 1949 Error Correction
- zoj 2104 Let the Balloon Rise
- zoj 2108 Elevator
- 2012-03-31
- mysql LOAD DATA INFILE 使用
- 对mempool 的看法, 是否有必要实现 mempool