Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在textview中显示单个SQLite数据?_Java_Android_Sqlite - Fatal编程技术网

Java 如何在textview中显示单个SQLite数据?

Java 如何在textview中显示单个SQLite数据?,java,android,sqlite,Java,Android,Sqlite,我想从现有数据库中检索金额,并将其显示在文本视图中 我已经创建了一个数据库。但当我试图获取并显示金额时,我的应用程序总是崩溃 /DataBaseHelper.java/ 仪表板类别: public void saveCallBack(Balance balance) { DataBaseHelper dataBaseHelper = new DataBaseHelper(context); Cursor cursor = dataBaseHelper.getBalance(Da

我想从现有数据库中检索金额,并将其显示在文本视图中

我已经创建了一个数据库。但当我试图获取并显示金额时,我的应用程序总是崩溃

/DataBaseHelper.java/

仪表板类别:

public void saveCallBack(Balance balance) {


   DataBaseHelper dataBaseHelper = new DataBaseHelper(context);
    Cursor cursor = dataBaseHelper.getBalance(DashBoard.email);
  while (cursor.moveToNext()) {
        String s_amount = "";
        s_amount = 
      cursor.getString(cursor.getColumnIndex(DataBaseHelper.KEY_AMOUTNT));

        Double amount = 0.0;
        if (AppUtility.isNum(s_amount)) {
            amount = Double.parseDouble(s_amount);
        }

        TextView Amount = findViewById(R.id.amount);
        Amount.setText(String.valueOf(amount));


    }

}

您正在将
余额
转换为
光标
,这是不可能的,因此您的应用程序将崩溃。您可以返回数据库
光标
本身或
余额
对象。您已经创建了
Balance
实例并在其中添加了一些值,因此我假设您的代码应该是:

public Balance getBalance(String amount) {
    ...

    Balance b = new Balance();
    b.setAmount(c.getInt(c.getColumnIndex(KEY_AMOUTNT)));
    return b;
}

我建议您学习更多有关Java强制转换的知识,以便了解强制转换行为。

如果您是SQLite和Android新手,您可能希望尝试更新、更简单、更好的方法。这是有关此事的官方消息。另外,当你遇到Android问题时,在你的问题中添加logcat错误文件。谢谢,我改变了这个。但现在我在Dashboad.java'Cursor Cursor=dataBaseHelper.getBalance(DashBoard.email)中遇到了错误;是的,这是因为类型不同。您应该了解
游标
不是也永远不能是
余额
对象。你需要改变你的代码结构,真正考虑你正在传递的类型。这将起作用:
Balance-Balance=dataBaseHelper.getBalance(DashBoard.email)我更改了结构,但DataBaseHelper.java中仍然出现错误。如前所述,您应该重新考虑您的结构以及在类之间传递的内容。对于java类中的其他错误,没有真正的解决方案。如果您还有其他问题,我建议您在StackOverflow上发布一个新问题。
public Balance getBalance(String amount) {
    ...

    Balance b = new Balance();
    b.setAmount(c.getInt(c.getColumnIndex(KEY_AMOUTNT)));
    return b;
}