
然后再写个textview的布局xml,在activity中设置按钮事件,再写个adapter类,每点击一次就适配一个textview到listview里
protected void onCreate(Bundle savedInstanceState) {... ...
//步骤1:向ListView注册Context Menu,当系统检测到用户长按某单元是,触发Context Menud出
registerForContextMenu(getListView())
}
// 步骤2:创建ContextMenu同OptionMenu,用户长按元素后,会d出菜单
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(Menu.NONE,DELETE_ID,Menu.NONE,"Delete")
super.onCreateContextMenu(menu, v, menuInfo)
}
//步骤 3: ContextMenu的触发 *** 作,例子将触发delete()
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()){
case DELETE_ID:
/* 在此处,我们关键引入
AdapterView.AdapterContextMenuInfo来获取单元的信息。在有三个重要的信息。 1、id:The row id of
the item for which the context menu is being displayed
,在cursorAdaptor中,实际就是表格的_id序号; 2、position
是list的元素的顺序;3、view就可以获得list中点击元素的View,通过view可以获取里面的显示的信息 */
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo()
delete(info.id)
return true
default:
break
}
return super.onContextItemSelected(item)
}
现在的listView的子项一般都是自定义布局,定义id后,可以获取他,并给子项中不同的元素添加不同的事件。而事件添加一般写在Adapter里,getView方法中。所以,是的,必须是一个id。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)