微信中长按弹出菜单(2)实现了功能

在上一篇的基础上,实现了按钮的功能。

MainActivity:

package com.example.menumeration;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

	private ArrayList<String> date = null;
	private ArrayAdapter aad;
	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.activity_main);

		date = new ArrayList<String>();
		for (int i = 1; i < 41; i++) {
			date.add("微信信息:" + i);
		}
		aad = new ArrayAdapter(this, android.R.layout.simple_list_item_1, date);
		this.setListAdapter(aad);
		ListView lv = this.getListView();
		lv.setAdapter(aad);

		lv.setOnCreateContextMenuListener(this);

	}

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
		menu.add(0, 1001, 0, "标为未读");
		menu.add(0, 1002, 1, "删除聊天");
		menu.add(0, 1003, 2, "设为置顶");

		super.onCreateContextMenu(menu, v, menuInfo);
	}

	@Override
	public boolean onContextItemSelected(MenuItem item) {
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
		final int pos = info.position;

		int id = item.getItemId();
		// 置顶
		if (id == 1003) {
			Object obj = date.get(pos);
			date.remove(pos);
			date.add(0, (String) obj);
			aad.notifyDataSetChanged();
		}
		// 删除    加入了确定对话框
		if (id == 1002) {
			AlertDialog dialog=new AlertDialog.Builder(this).create();
			dialog.setTitle("对话框");
			dialog.setMessage("确定删除这条消息吗?");
			dialog.setButton(Dialog.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//点击确定按钮的业务逻辑
					date.remove(pos);
					aad.notifyDataSetChanged();
					Toast.makeText(getApplicationContext(), "删除消息", Toast.LENGTH_SHORT).show();
				}
			});
			dialog.setButton(Dialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					//点击取消按钮的业务逻辑
					Toast.makeText(getApplicationContext(), "取消该操作", Toast.LENGTH_SHORT).show();
				}
			});
			dialog.show();
			
		}
		

		return super.onContextItemSelected(item);
	}
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值