[英]How to get values from a selected item in a listView?
我创建了一个onCreateContextMenu()来通过从列表视图中获取值来执行删除和编辑功能。在我的代码中,删除功能和编辑功能都运行良好。 但是我的问题是,每当我尝试从列表视图进行编辑时,都没有传递我选择的值。 它总是在我的列表视图中传递第一个细节。 在类似的问题上,当我通过使用作为“ TextView updateName =(TextView)view.findViewById(R.id.lblLUnitName);”传递textview的值时,此问题得以解决。 但是目前,我无法通过“视图”来从textview中检索特定值。 我该如何更改?
//creating the longtimeClicked bar when loading the app
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, view, menuInfo);
menu.setHeaderIcon(R.drawable.pencil_icon);
menu.setHeaderTitle(" Unit Options");
menu.add(Menu.NONE,EDIT,Menu.NONE, " Edit Unit");
menu.add(Menu.NONE, DELETE, Menu.NONE, " Delete Unit");
}
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE:
dbHandler.deleteUnits(Unit.get(longClickedItemIndex));
Unit.remove(longClickedItemIndex);
unitsAdapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "Unit has been deleted.", Toast.LENGTH_LONG).show();
break;
case EDIT:
TextView updateName = (TextView)findViewById(R.id.lblLUnitName);
String updateName1 = updateName.getText().toString();
TextView updateBulb = (TextView) findViewById(R.id.lblLNoofBulbs);
// String updateBulb1=updateBulb.getText().toString();
TextView updateFan = (TextView) findViewById(R.id.lblLNoOfFans);
//String updateFan1=updateFan.getText().toString();
Intent intent_valueUpdate = new Intent(CreateNewUnit.this,
UpdateUnit.class);
int updateBulb1 = Integer.valueOf(updateBulb.getText().toString());
int updateFan1 = Integer.valueOf(updateFan.getText().toString());
// intent_valueBulb.putExtra("KeyValueA",2);
intent_valueUpdate.putExtra("keyNameA", updateName1);
intent_valueUpdate.putExtra("keyBulb1", updateBulb1);
intent_valueUpdate.putExtra("keyFan1", updateFan1);
startActivity(intent_valueUpdate);
break;
}
return super.onContextItemSelected(item);
}
根据Android文档@ Menu类 ,您需要像在onCreate
()中一样调用registerForContextMenu
方法。 搜索“创建浮动上下文菜单”的文本。 长时间单击会触发上下文菜单。 样例代码:
protected void onCreate(Bundle savedInstanceState) {
registerForContextMenu(listview);
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.