Java 在Eclipse(Android)中连接数据库(SQLITE)文件

Java 在Eclipse(Android)中连接数据库(SQLITE)文件,java,android,sqlite,Java,Android,Sqlite,我正在开发一个问答游戏,但我有一个现有的数据库文件,其中有问题和选项。。我如何在我的程序中连接它。 我如何执行查询以在文本视图中显示问题,并在按钮中显示选项。制作问答游戏的分步指南: 第1步: 首先从SQLite管理器创建数据库。制作一列主要索引,第二列问题,以及第三、第四、第五、第六列选项。对于相同字符串的正确答案(用于正确答案的比较),再增加一列。如图所示: 在资产文件夹中复制粘贴此filename.sqlite 第二步: 为获取和设置数据库的Getter Setters创建一个新类。它应

我正在开发一个问答游戏,但我有一个现有的数据库文件,其中有问题和选项。。我如何在我的程序中连接它。
我如何执行查询以在文本视图中显示问题,并在按钮中显示选项。

制作问答游戏的分步指南:

第1步:

首先从
SQLite管理器
创建数据库。制作一列主要索引,第二列问题,以及第三、第四、第五、第六列选项。对于相同字符串的正确答案(用于正确答案的比较),再增加一列。如图所示:

在资产文件夹中复制粘贴此
filename.sqlite

第二步:

为获取和设置数据库的Getter Setters创建一个新类。
它应该包含您试图获取的所有字段。

第三步:

创建一个扩展
SQLiteOpenHelper
的DBAdapter类。使用此代码:

public class DBAdapter extends SQLiteOpenHelper
{
static String name = "kbcquiz.sqlite";
static String path = "";
static ArrayList<kbc> a;
static SQLiteDatabase sdb;

@Override
public void onCreate(SQLiteDatabase db)
{
    // Your database is already Created, so no need to add anything here
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
    //  Database Not upgraded here
} 

private DBAdapter(Context v) 
{
    super(v, name, null, 1);
    path = "/data/data/" + v.getApplicationContext().getPackageName() + "/databases";
}

public boolean checkDatabase()
{
    SQLiteDatabase db = null;
    try 
    {
        db = SQLiteDatabase.openDatabase(path + "/" + name, null, SQLiteDatabase.OPEN_READONLY);
    } catch (Exception e) 
    {
        e.printStackTrace();
    }
    if (db == null) 
    {
        return false;
    } 
    else
    {
        db.close();
        return true;
    }
}

public static synchronized DBAdapter getDBAdapter(Context v)
{
    return (new DBAdapter(v));
}

public void createDatabase(Context v) 
{
    this.getReadableDatabase();
    try
    {
        InputStream myInput = v.getAssets().open(name);
        // Path to the just created empty db
    String outFileName = path +"/"+ name;
        // Open the empty db as the output stream
    OutputStream myOutput = new FileOutputStream(outFileName);
        // transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) 
    {
        myOutput.write(buffer, 0, length);
    }
        // Close the streams
    myOutput.flush();
    myOutput.close();
    myInput.close();
                } catch (IOException e) 
    {
        System.out.println(e);
    }
}

public void openDatabase() 
{
    try 
    {
        sdb = SQLiteDatabase.openDatabase(path + "/" + name, null,
                SQLiteDatabase.OPEN_READWRITE);
    } catch (Exception e) 
     {
        System.out.println(e);
    }
}

    // Method for fetching Data and storing it into ArrayList

    public ArrayList<kbc> getQuestions() 
 {
           //question is the table name, you can also use "SELECT * FROM question" in case 
     Cursor c1 = sdb.rawQuery("SELECT * FROM question ORDER BY RANDOM()", null);
     a = new ArrayList<kbc>();
     while (c1.moveToNext())
    {
        kbc q1 = new kbc(); // kbc is the getter setter class
        //the below code can vary upon ur getter-setter methods & variables
        q1.setSno(c1.getInt(0));
        q1.setQuestion(c1.getString(1));
        q1.setA(c1.getString(2));
        q1.setB(c1.getString(3));
        q1.setC(c1.getString(4));
        q1.setD(c1.getString(5));
        q1.setAnswer(c1.getString(6));

                    a.add(q1);//--Always remember to add the fetched elements of type ArrayList<GetterGetter>
    }
    return a;
}
}
要从arraylist获取任何字符串,请使用
q.get(0).getQuestion(),q.get(0).getA(),q.get(0).getB(),q.get(0).getC(),q.get(0).getD()

更改索引以获取不同的列&将该文本设置为TextView或Button

单击选择的答案,您可以通过以下方式检查正确性:

if(btn4.getText().toString().equals(q.get(e).getAnswer().toString()))
{
 // correct answer
     //Use it for changing color,managing indexing, etc..
}
输出:

希望这有帮助!
干杯

请发布您的密码或澄清您的问题,然后我将帮助您..先生,您在POC中的意思是什么?@Warde您是如何填写此数据库的?例如,我有问题,但它们在文本中。你知道文本到sqlite的任何简单技巧吗,或者有任何程序可以自动执行吗?你有文本中的问题,你可以在sqlite管理器中键入,如第一张图片所示
if(btn4.getText().toString().equals(q.get(e).getAnswer().toString()))
{
 // correct answer
     //Use it for changing color,managing indexing, etc..
}