在没有上下文菜单的情况下检索_id值

时间:2014-02-19 21:10:28

标签: android sqlite contextmenu

我正在构建自定义ListView(卡片样式),并希望在卡片上有一个编辑和删除按钮。为了在正确的数据库行上调用方法,我需要知道用户选择了哪个_id(View)。

目前,我正在使用非常简单的上下文菜单

@Override  
       public void onCreateContextMenu(ContextMenu menu, View v,  
                 ContextMenuInfo menuInfo) { 
            super.onCreateContextMenu(menu, v, menuInfo);
            AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
            position = (int) info.id;
            MenuInflater m = getMenuInflater();  
            m.inflate(R.menu.history_popup_menu, menu);  
       }

    @Override  
       public boolean onContextItemSelected(final MenuItem item) {  
            switch(item.getItemId()){  
                 case R.id.delete:
...

在这种情况下,我在onCreateContextMenu

中获得了id(位置)

我想现在摆脱上下文菜单,只需在卡片上进行编辑和删除。

如何从数据库中检索_id并将其分配给我的删除/编辑方法中使用的值?

这是我创建列表的方法

private void addItemsToList(){
        Cursor cursor = db.getAllLogs();
        Log.d("history.java", "finished Cursor cursor = db.getAllLogs();");
        String[] from = {"_id", "date", "gallons", "pricePerGallon", "odometer", "filledOrNot", "comments", "totalSpent"};
        int[] to = {deleteVal, R.id.cardDate, R.id.cardGallons, R.id.cardPrice, R.id.cardOdometer, R.id.cardFilledOrNot, R.id.cardComments, R.id.usd};
        adapter = new SimpleCursorAdapter(this, R.layout.history_list_item, cursor, from, to, 0);
        String filledOrNotVal = String.valueOf(R.id.cardFilledOrNot);
        if (filledOrNotVal == "False"){
            Log.d("history", "False");
        } else {
            Log.d("history", "True");
        }
        listContent.setAdapter(adapter);
    }

0 个答案:

没有答案