接下来是代码内容
package com.example.contenxtmenu;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
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;
import android.view.ContextMenu.ContextMenuInfo;
public class MainActivity extends ListActivity {
ArrayList<String>list;
ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
// TextView text=(TextView) findViewById(R.id.text);
// text.setOnCreateContextMenuListener(this);
// ImageView imageview=(ImageView) findViewById(R.id.inmager);
// imageview.setOnCreateContextMenuListener(this);
list=new ArrayList<String>();
for(int i=0;i<50;i++){
list.add("测试的微信数据"+i);
}
adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,list);
this.setListAdapter(adapter);
ListView lv=this.getListView();
lv.setOnCreateContextMenuListener(this);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(1, 1001, 0, "标记未读");
menu.add(1, 1002, 1, "置顶该聊天");
menu.add(1, 1003, 2, "删除该聊天");
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info=(AdapterContextMenuInfo) item.getMenuInfo();
int a=info.position;
int id=item.getItemId();
if(id==1001){
Toast.makeText(getApplicationContext(), "已标记未读成功", Toast.LENGTH_SHORT).show();
}
if(id==1002){
//置顶的逻辑 先把当前的删除,得到的一个对象,然后在把这个对象添加到顶部,用数组下标的方式置顶到0的位置。
String b=list.remove(a);
list.add(0, b);
adapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "置顶成功", Toast.LENGTH_SHORT).show();
}
if(id==1003){
list.remove(a);
adapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "删除该聊天成功", Toast.LENGTH_SHORT).show();
}
return super.onContextItemSelected(item);
}
}