步骤:
一、布局main.xml里 listview
android:id="@android:id/list"
二、Activity继承ListActivity
三、初始化数据
四、初始化控件
①ArrayAdapter<String> adapter=new ArrayAdapter<String>(
上下文对象,
布局,
布局控件的id,
数据
);
②设置适配器
③//给控件注册上下文菜单
registerForContextMenu(直接调用:getListView());
④ListView设置长按事件
.setOnItemLongClickListener(new on.....);
五、
②实现onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)方法
并创建按钮menu.add();
③实现onContextItemSelected(MenuItem item)重写上下文条目选择函数
item.getId
上课案例
MainActivity.java
public class MainActivity extends ListActivity {
ListView listview;
String [] datas = new String[]{
"凤姐姐",
"露露姐",
"毛毛姐",
"春哥哥",
"曾哥哥"
};
ArrayAdapter<String> adapter;
ArrayList<String> list = new ArrayList<String>();
public void initData(){
for(int i=0;i<datas.length;i++){
list.add(datas[i]);
}
}
int nowPosition = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initData();
initView();
}
//初始化控件
public void initView(){
adapter = new ArrayAdapter<String>(
MainActivity.this,
android.R.layout.simple_list_item_1,
android.R.id.text1,
list);
setListAdapter(adapter);
listview = getListView();
//给控件注册上下文菜单
registerForContextMenu(listview);
//设置列表子条目的长按事件
listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
MainActivity.this.nowPosition = position;
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
/**
* 参数1:分组的id
* 参数2:子项的id
* 参数3:排序的id
* 参数4:按钮的显示名称
*/
// menu.add(0, 0, 0, "新建");
// menu.add(1, 1, 1, "删除");
/**
* 菜单布局加载器
* 参数1:创建菜单的布局文件
* 参数2: 要引用子菜单的主菜单
*/
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
/**
* 当普通菜单被点击选中时调用
* 参数1:您当前点击的菜单子项
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.new_create_menu:
Toast.makeText(MainActivity.this, "新建成功..", Toast.LENGTH_LONG).show();
break;
case R.id.new_create_delete:
Toast.makeText(MainActivity.this, "删除成功..", Toast.LENGTH_LONG).show();
break;
case R.id.new_create_menu1:
Toast.makeText(MainActivity.this, "新建大学生..", Toast.LENGTH_LONG).show();
break;
case R.id.new_create_menu2:
Toast.makeText(MainActivity.this, "新建小学生..", Toast.LENGTH_LONG).show();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.add(0, 0, 0, "删除条目");
menu.add(1 ,1, 1,"修改条目");
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case 0:
list.remove(nowPosition);
//通知数据修改
adapter.notifyDataSetChanged();
break;
case 1:
break;
}
return super.onContextItemSelected(item);
}
}