学习日记--ContextMenu的简单测试

来源:互联网 发布:linux系统可以做什么 编辑:程序博客网 时间:2024/04/30 23:31

在当前的微信版本中,如果长按微信消息或对方发过来的照片,会弹出相应菜单进行选择(选择置顶或删除),这时用到的就是ContextMenu。


测试效果如下:



java代码如下:

package com.hxzy.menu;import java.util.ArrayList;import android.app.AlertDialog;import android.app.ListActivity;import android.content.DialogInterface;import android.os.Bundle;import android.view.ContextMenu;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.Switch;import android.widget.Toast;public class MainActivity extends ListActivity {private ArrayList<String> list = null;private ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);list = new ArrayList<String>();for (int i = 0; i < 40; i++) {list.add("测试微信消息" + i);}adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);this.setListAdapter(adapter);ListView lv = this.getListView();lv.setBackgroundResource(R.drawable.d);lv.setOnCreateContextMenuListener(this);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);menu.add(1, 1001, 0, "设为标记");menu.add(1, 1002, 0, "置顶该消息");menu.add(1, 1003, 0, "删除该消息");}@Overridepublic boolean onContextItemSelected(MenuItem item) {AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();final int pos = info.position;switch (item.getItemId()) {case 1002: {String s = list.get(pos);list.remove(pos);list.add(0, s);adapter.notifyDataSetChanged();break;}case 1003: {AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.setTitle("系统提示");dialog.setMessage("确认删除该消息吗?");dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {list.remove(pos);adapter.notifyDataSetChanged();Toast.makeText(getApplicationContext(), "删除成功", 0).show();}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "取消删除", 0).show();}});dialog.show();break;}default:break;}return super.onContextItemSelected(item);}}






0 0
原创粉丝点击