如何在android中单击listview项目时从数据库获取id

2023-11-27

我在此网站上搜索了与此相关的各种问题,但无法解决我遇到的问题。

我想通过单击列表视图项从数据库获取 id

这是我的类别类:

package com.example.reminders;

import java.util.List;

import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class Categories extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DBAdapter db = new DBAdapter(Categories.this);
        db.open();
        List<String> cs = db.getAllCategoriesList();
        setListAdapter(new ArrayAdapter<String>(this, R.layout.activity_categories,cs));
        ListView listView = getListView();
        listView.setTextFilterEnabled(true);
        listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // When clicked, show a toast with the TextView text

                 Cursor cur = (Cursor) parent.getItemAtPosition(position);
                Toast.makeText(getApplicationContext(),
                "id:"+id+"position:"+position+"rowid:"+cur.getInt(cur.getColumnIndex("_id")), Toast.LENGTH_LONG).show();
            }
        }); 
        db.close();


    }


}

DBAdapter 类中定义的 getAllCategoriesList 函数是:

//---retrieves all the category data---
    public List<String> getAllCategoriesList() 
    {
        String[] columns = new String[] {KEY_NAME2};
        Cursor c = db.query(DATABASE_TABLE2, columns, null, null, null, null,
            KEY_NAME2);     
       // String results = "";
        List<String> results = new ArrayList<String>();
        int iCM = c.getColumnIndex(KEY_NAME2);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
            results.add(c.getString(iCM));
        }
        return results;

    }

当我运行示例代码时出现以下错误:

10-01 15:05:22.507: E/AndroidRuntime(20846): java.lang.ClassCastException: java.lang.String cannot be cast to android.database.Cursor

您没有从数据库查询 _id(仅查询 KEY_NAME2 列),因此您无法从适配器获取它。

这行:

Cursor cur = (Cursor) parent.getItemAtPosition(position);

是完全错误的。您正在尝试转换一个字符串(由ArrayAdapter<String>到光标,这永远无法工作。

你要做的就是使用CursorAdapter (or SimpleCursorAdapter)为您的列表视图。游标应至少查询 _id 和 KEY_NAME2。

有了这个适配器getItem(int position)将返回设置到请求位置的光标。那么你需要做的就是cursor.getInt(cursor.getColumnIndex("_id"))你就在那里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中单击listview项目时从数据库获取id 的相关文章

  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • 如何在 Android 中保存相机的临时照片?

    在尝试从相机拍照并将其保存到应用程序的缓存文件夹中时 我没有得到任何可见的结果 应用程序不会崩溃 但在 LogCat 上 当我尝试将 ImageView src 字段设置为刚刚获取的文件的 URI 时 我收到此消息 09 17 14 03
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分

随机推荐

  • 如何更改 ggplot2 中的默认主题?

    背景 我想更改 ggplot 使用的主题 但我很难理解theme update 文档和示例 我在用align plots 将箱线图放在密度图上 但我发现没有任何代码导致错误 并且留下了最小的示例 我怀疑该错误是由使用引起的theme bla
  • 如何在docker日志中记录docker healthcheck状态?

    客观的 我想通过验证 docker 日志来检查我的 docker 容器是否健康 要求 I have 两个文件 namely Dockerfile and loop sh我已经向我的泊坞窗添加了 HEALTHCHECK 如下所示 Docker
  • 如何使用 php 将事件插入用户谷歌日历?

    我有以下代码可以插入到我的特定谷歌日历中 嗯 非常成功 但是如何让用户可以添加到自己的日历 有人可以帮助我 我的预期结果就像用户可以通过谷歌登录 这意味着用户可以添加到自己的谷歌日历 谢谢 添加到我的特定日历的代码 require once
  • 为什么 C++ 标准库不提供 cmath 函数的 constexpr 版本?

    We have constexpr自 C 11 以来 函数一直在使用 并且自每个新标准 14 1z 以来 它们的限制越来越少 然而 STL 中最明显的函数可以用constexpr the cmath math h功能 还是没有constex
  • Safari/WebKit 的 console.log DOM 节点作为对象?

    这件事让我抓狂了一段时间 当我 console log 一个 DOM 节点时 通过示例返回document getElementById 它显示为交互式 html 元素 就像它出现在 元素 选项卡上一样 这肯定很方便 但有时我只想能够扩展对
  • 我如何编写正则表达式“所有字符都相同”?

    我希望它匹配 aaaaaa bb c but not aaabaaa cd 假设正则表达式引擎支持反向引用 1 在Java中它会是 theString matches 1
  • 将 Tab 键顺序限制为单个用户控件 (WPF)

    目前我有一个带有自定义 UserControl 的 WPF 项目 该控件包含一个网格 其中包含多个表单类型元素 复选框 文本框 组合框等 该控件被设计为看起来像表单一样操作 但它被放置在拖动画布内 这就是为什么它需要是 UserContro
  • 如何“缓存” mongoDB/Mongoose 结果以在 Express.js 视图和路由中使用

    我想要实现的是某种方式缓存结果 of a mongoDB 猫鼬我可以在我的视图和路线中使用的查询 每当将新文档添加到集合中时 我都需要能够更新此缓存 由于函数是异步的 我不确定这是否可能 如果是 那么如何做到这一点 这是我目前用于存储画廊的
  • 外部链接到 Shiny App 中的特定 tabPanel

    可以相对轻松地在平面闪亮应用程序中使用锚链接 https stackoverflow com a 28605517 1659890 但是 外部链接是否可以针对特定的目标 tabPanel of a navbarPage在闪亮的应用程序中 考
  • Windows Phone 7 Mango 照片相机的取景器方向

    我将 PhotoCamera 控件与 Windows Phone 7 Mango Beta 2 开发工具结合使用 相机控件的 ViewFinder 是一个填充有 VideoBrush 的矩形对象 如下例所示 http msdn micros
  • Python Pandas 使用杰卡德相似度的距离矩阵

    我已经实现了一个使用杰卡德相似度构造距离矩阵的函数 import pandas as pd entries id 1 category1 100 category2 0 category3 100 id 2 category1 100 ca
  • 计算每行零的数量,并删除具有超过 n 个零的行

    我有一个关于计算每行零的问题 我有一个像这样的数据框 a c 1 2 3 4 5 6 0 2 5 b c 0 0 0 2 6 7 0 0 0 c c 0 5 2 7 3 1 0 3 0 d c 1 2 6 3 8 4 0 4 0 e c 0
  • 我迷路了。 ASP.NET MVC 5 发生了什么?

    我一直在埋头从事各种项目 显然微软一直在忙着做出一些重大改变 这让我很困惑 当我去年安装 Visual Studio 2017 并去创建一个新项目时 ASP NET Core 第一次出现在我的视野中 突然我可以选择 NET Framewor
  • flutter 中的闪屏实现

    我是 Flutter 新手 我想在我的应用程序中添加启动画面 我使用了 initState 和导航器 但这没有用 该应用程序打开时会出现初始屏幕 但之后它不会导航到下一个屏幕 我的 main dart import package flut
  • Java:学习基础网络的最佳起点 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在尝试用Java 编写一个简单的网络聊天程序 我几乎没有网络经验 我想知道我应该开始寻找哪些资源 当然除了这里 目前最好坚持使用核心 Java
  • 将文件上传到 S3 时选项请求被拒绝

    当我尝试将 JS 文件上传到 S3 时 出现上传错误 OptionsRequestDenied 除了这个之外 所有其他文件 包括 JS 文件 都可以工作 该文件使用 jQuery 发出一些跨域请求 如下所示 function corsReq
  • NodeJS Electron 与 Express

    我正在尝试使用 Electron 用于网站和桌面应用程序 和 Express 用于会话等 制作一个网络应用程序 现在 我将其作为我的 app js const express require express const app Browse
  • 使用不同的 sqlite 数据库结构将新版本更新到应用程序商店

    我已经在应用程序商店上传了一个应用程序 版本1 0 我的应用程序使用 sqlite 数据库来存储一些数据 现在 我对数据库进行了一些更改 我在数据库的一个表中添加了 2 或 3 个新列 我想用新版本 1 1 更新我的应用程序的先前版本 它具
  • Lambda 表达式未返回预期的 MemberInfo

    我遇到了一个我没有预料到的问题 一个例子可能比一段话更能说明我的问题 更新 跳到最后一个代码块以获得更雄辩的代码示例 public class A public string B get set public class C A 这是方法中
  • 如何在android中单击listview项目时从数据库获取id

    我在此网站上搜索了与此相关的各种问题 但无法解决我遇到的问题 我想通过单击列表视图项从数据库获取 id 这是我的类别类 package com example reminders import java util List import a