读书人

ListView组合ContextMenu 获取点击项的

发布时间: 2012-08-27 21:21:57 作者: rapoo

ListView结合ContextMenu 获取点击项的Position

ContextMenu称为上下文菜单,一般在控件上长按时弹出。今天我们学习ContextMenu的用法,这里与listview相结合,先在ListView显示几个Item,然后在Item上长按,弹出一个菜单(就是ContextMenu),点击菜单上的项目,提示刚才长按的Item的Position.

main.xml 里就一个ListView

?

?

package com.pocketdigi.com; import java.util.ArrayList;  import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast; public class main extends Activity { /** Called when the activity is first created. */ListView lv;ArrayAdapter<String> Adapter;ArrayList<String> arr=new ArrayList<String>();//定义菜单项protected static final int Menu_Item1=Menu.FIRST;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        lv=(ListView)findViewById(R.id.lv);        //添加ListView项    arr.add("123");    arr.add("234");    arr.add("345");    Adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arr);    lv.setAdapter(Adapter);    lv.setOnCreateContextMenuListener(MenuLis);    }    ListView.OnCreateContextMenuListener MenuLis=new ListView.OnCreateContextMenuListener(){@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {// TODO Auto-generated method stub//添加菜单项menu.add(Menu.NONE,Menu_Item1,0,"获取position");}     };    //选中菜单Item后触发    public boolean onContextItemSelected(MenuItem item){    //关键代码在这里        AdapterView.AdapterContextMenuInfo menuInfo;        menuInfo =(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();        //输出position    Toast.makeText(main.this,String.valueOf(menuInfo.position), Toast.LENGTH_LONG).show();     return super.onContextItemSelected(item);      } }

?

?

List 中显示context Menu

// get the list view
ListView list = (ListView)findViewById(R.id.list);
// set adapter before registering the context menu
list.setAdapter(adapter);
// register it for the context menu
registerForContextMenu(list);

读书人网 >操作系统

热点推荐