Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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 我试图从简单的listView中的.db文件导入数据,但我的应用程序没有显示任何文本。如何解决此问题?_Java_Android_Database_Listview_Import - Fatal编程技术网

Java 我试图从简单的listView中的.db文件导入数据,但我的应用程序没有显示任何文本。如何解决此问题?

Java 我试图从简单的listView中的.db文件导入数据,但我的应用程序没有显示任何文本。如何解决此问题?,java,android,database,listview,import,Java,Android,Database,Listview,Import,我是android世界的初学者,因此我正在学习从使用DB browser创建的现有数据库导入数据。下面我将添加一个链接,从中学习从现有数据库文件导入数据。 注意:我已将.db文件正确放置在资产文件夹中。 我在下面分享我的main.java代码: package com.javahelps.externaldatabasedemo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import

我是android世界的初学者,因此我正在学习从使用DB browser创建的现有数据库导入数据。下面我将添加一个链接,从中学习从现有数据库文件导入数据。

注意:我已将.db文件正确放置在资产文件夹中。 我在下面分享我的main.java代码:

package com.javahelps.externaldatabasedemo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.List;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = findViewById(R.id.listView);
        DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this);
        databaseAccess.open();
        List<String> quotes = databaseAccess.getQuotes();
        databaseAccess.close();

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1, quotes);
        listView.setAdapter(adapter);
    }
}
我的DatabaseOpenHelper.java类代码如下:

package com.javahelps.externaldatabasedemo;

import android.content.Context;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseOpenHelper extends SQLiteAssetHelper {
    private static final String DATABASE_NAME = "quotes.db";
    private static final int DATABASE_VERSION = 1;

    public DatabaseOpenHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    } 
}
最后,我的DatabaseAccess.java类是:

package com.javahelps.externaldatabasedemo;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;
import java.util.List;

public class DatabaseAccess {
    private SQLiteOpenHelper openHelper;
    private SQLiteDatabase database;
    private static DatabaseAccess instance;

    private DatabaseAccess(Context context) {
        this.openHelper = new DatabaseOpenHelper(context);
    }
    public static DatabaseAccess getInstance(Context context) {
        if (instance == null) {
            instance = new DatabaseAccess(context);
        }
        return instance;
    }

    /**
    * Open the database connection.
    */
    public void open() {
        this.database = openHelper.getWritableDatabase();
    }

    /**
    * Close the database connection.
    */
    public void close() {
        if (database != null) {
            this.database.close();
        }
    }

    /**
    * Read all quotes from the database.
    *
    * @return a List of quotes
    */
    public List<String> getQuotes() {
        List<String> list = new ArrayList<>();
        Cursor cursor = database.rawQuery("SELECT quote FROM quotes", null);
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            list.add(cursor.getString(0));
            cursor.moveToNext();
        }
        cursor.close();
        return list;
    }
}

如何从上述代码中解决此问题?

根据您提到的教程,开发人员已将quotes.db.zip文件放在assets/databases目录中。但是您提到您已经放置了.db文件,请重新检查。

我看到了类似的帖子。我希望它能帮助你。找到以下链接:

还要检查权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

请把你的日志猫寄出去好吗?
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />