在上一篇的基础上,实现了按钮的功能。
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);
}
}