应用程序布局和光标

时间:2018-06-08 08:19:05

标签: android layout cursor

我正在尝试构建一个应用程序,它显示来自本地存储数据库的段落,然后根据上面显示的段落显示一组问题。

有段落,问题和答案的单独表格。

我已经接受了SQLiteAssetHelper的帮助,但问题是我无法将它放在我的主要布局上。

这是我的MainActivity类(我必须删除setcontentview)

package com.ex.myapplication;
import android.app.ListActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ListAdapter;
import android.widget.SimpleCursorAdapter;

public class MainActivity extends ListActivity {

private Cursor employees;
private Mydatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    db = new Mydatabase(this);
    employees = db.getPassages(); // you would not typically call this on the main thread

    ListAdapter adapter = new SimpleCursorAdapter(this,
            android.R.layout.activity_list_item,
            employees,
            new String[] {"PASSAGE"},
            new int[] {android.R.id.text1});

    getListView().setAdapter(adapter);
    }

@Override
protected void onDestroy() {
    super.onDestroy();
    employees.close();
    db.close();
}

}

这是我的数据库助手类

package com.ex.myapplication;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class Mydatabase extends SQLiteAssetHelper {

    private static final String DATABASE_NAME = "passage.db";
    private static final int DATABASE_VERSION = 1;

    public Mydatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public Cursor getPassages() {

        SQLiteDatabase db = getReadableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

        String[] sqlSelect = {"_id","PID", "PASSAGE"};
        String sqlTables = "Passages";

        qb.setTables(sqlTables);
        Cursor c = qb.query(db, sqlSelect, null, null,
                null, null, null);

        c.moveToFirst();
        return c;

    }}

因此表Passages中有200个段落,但是通过这段代码,所有这些段落都会立即显示在列表视图中。

我理解这是列表视图和光标的工作方式,但我想逐个点击按钮遍历段落,同时我希望问题显示在屏幕的下半部分。

基本上我想按以下顺序划分屏幕。

Prototype layout

而且我还希望将它放在线性布局中,而不是使用列表视图。 如果您需要进一步说明,请回复此帖。 任何帮助将不胜感激。

0 个答案:

没有答案