android 实现上下文菜单实例

来源:互联网 发布:玫瑰花 简笔画软件 编辑:程序博客网 时间:2024/05/16 14:24

前言

在QQ的消息列表中,我们长按某条消息,则可出现对该消息进行处理的菜单,我们简单模拟一下。

1.布局文件

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ListView        android:id="@+id/listView"        android:layout_width="match_parent"        android:layout_height="wrap_content" >    </ListView></LinearLayout>
main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    tools:context="cn.sehzh.contextmenutester.MainActivity" >    <item        android:id="@+id/addItem"        android:title="增加">    </item>    <item        android:id="@+id/editItem"        android:title="修改">    </item>    <item        android:id="@+id/deleteItem"        android:title="删除">    </item></menu>
2 MainActivity
package cn.sehzh.contextmenutester;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {private static final String TAG = "MYTAG";private ListView mListView;private List<String> mList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mList.add("hzh");mList.add("qwe");mList.add("asd");mListView = (ListView) findViewById(R.id.listView);ArrayAdapter<String> adapter;adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mList);mListView.setAdapter(adapter);registerForContextMenu(mListView);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);MenuInflater inflater;inflater = getMenuInflater();inflater.inflate(R.menu.main, menu);}@Overridepublic boolean onContextItemSelected(MenuItem item) {switch (item.getItemId()) {case R.id.addItem:Log.i(TAG, "add...");break;case R.id.editItem:Log.i(TAG, "edit...");break;case R.id.deleteItem:Log.i(TAG, "delete...");break;default:break;}return super.onContextItemSelected(item);}}
3.实现效果




0 0