繁体   English   中英

如何从listView中的选定项目获取值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM