如何从数据库中选择列并在android文本视图中显示?

如何从数据库中选择列并在android文本视图中显示?,android,sql,sqlite,Android,Sql,Sqlite,我是android编程新手,我尝试在文本视图中显示我的select查询结果,在过去的3天里我一直在尝试这样做,但它仍然不起作用;这是我的密码: f.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub db.o

我是android编程新手,我尝试在文本视图中显示我的select查询结果,在过去的3天里我一直在尝试这样做,但它仍然不起作用;这是我的密码:

        f.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            db.open();

            Cursor c = db.getWord(find.getText().toString());
            c.moveToFirst();

            String[] from = {DBManager.KEY_ENGLISH};
            int[] to = {R.id.TVTrans};



            SimpleCursorAdapter a = new SimpleCursorAdapter(StartingPoint.this, R.layout.dic, c, from, to);

            show.setText(a.convertToString(c));

            db.close();
        }
    });
这是我的db函数,最后一个中的getWord(String bahahsaIndo)是我想要使用的函数

public class DBManager {
public static final String KEY_ROWID = "_id";
public static final String KEY_BAHASA = "bahasa";
public static final String KEY_ENGLISH = "english";
private static final String TAG = "DBAdapter";

private static final String DATABASE_NAME = "dict";
private static final String DATABASE_TABLE = "words";
private static final int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE =
    "create table " + DATABASE_TABLE + " (_id integer primary key autoincrement, "
    + KEY_BAHASA + " text not null, " +  KEY_ENGLISH + " text not null" 
    + ");";

private final Context context; 

private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public DBManager(Context ctx) 
{
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper 
{
    DatabaseHelper(Context context) 
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) 
    {
        db.execSQL(DATABASE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, 
    int newVersion) 
    {
        Log.w(TAG, "Upgrading database from version " + oldVersion 
                + " to "
                + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS titles");
        onCreate(db);
    }
}    

//---opens the database---
public DBManager open() throws SQLException 
{
    db = DBHelper.getWritableDatabase();
    return this;
}

//---closes the database---    
public void close() 
{
    DBHelper.close();
}

//---insert a title into the database---
public long insertTitle(String bahasaIndo, String englishLang) 
{
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_BAHASA, bahasaIndo);
    initialValues.put(KEY_ENGLISH, englishLang);
    return db.insert(DATABASE_TABLE, null, initialValues);
}



//---retrieves all the titles---
public Cursor getAll() 
{
    return db.rawQuery("select * from " + DATABASE_TABLE, null);
    /*return db.query(DATABASE_TABLE, new String[] {
            KEY_ROWID, 
            KEY_BAHASA, 
            KEY_ENGLISH,
            null}, 
            null, 
            null, 
            null, 
            null, 
            null);*/
}
public Cursor getWord(String bahasaIndo){
    return db.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE " + KEY_BAHASA + " = '" + bahasaIndo+"'", null);
}
}

最后,这是我的xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <EditText 
android:id="@+id/ETFind" 
android:layout_height="wrap_content" 
android:text="Type the word that you want to find...." 
android:layout_width="wrap_content">
    </EditText>
    <TextView 
android:text="@+id/TextView01" 
android:id="@+id/TVTrans" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
    </TextView>
    <Button 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/bFind" 
android:text="Find">
    </Button>
   <Button 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/bSpeak" 
android:text="Speak">
    </Button>

   </LinearLayout>

任何帮助都将被告知:)

测试代码:

@Override
public void onClick(View v) {
    DBManager manager = new DBManager(this);
    manager.open();

    Random random = new Random();
    if (random.nextBoolean()) {
        Log.d("TAG", "Insert Value");

        manager.insertTitle("bahasaindo", "english");
        manager.insertTitle("bahasaindo" + random.nextInt(), "english1");
    } else {
        Log.d("TAG", "query value");

        Cursor cursor = manager.getWord("bahasaindo");
        if (cursor.moveToFirst()) {
            Log.d("TAG",     cursor.getString(cursor.getColumnIndex(DBManager.KEY_BAHASA)));
        }
    }
    manager.close();
}

谢谢你的回答,但我还是什么也看不出来。你介意检查一下我的问题吗?因为,我认为问题是存在的,但我不知道如何解决它-谢谢,它确实有效。但是,textView被一个空字符串更改了,我认为查询没有返回任何内容-谢谢你需要在db中添加一些数据,是的,我已经做了,数据在那里,但是textfield仍然没有给出预期的结果,textfield插入了一个空的设置你可以调试代码,查看查询结果,也许你什么都没有查询,因为查询select与数据库中的任何行都不匹配。
@Override
public void onClick(View v) {
    DBManager manager = new DBManager(this);
    manager.open();

    Random random = new Random();
    if (random.nextBoolean()) {
        Log.d("TAG", "Insert Value");

        manager.insertTitle("bahasaindo", "english");
        manager.insertTitle("bahasaindo" + random.nextInt(), "english1");
    } else {
        Log.d("TAG", "query value");

        Cursor cursor = manager.getWord("bahasaindo");
        if (cursor.moveToFirst()) {
            Log.d("TAG",     cursor.getString(cursor.getColumnIndex(DBManager.KEY_BAHASA)));
        }
    }
    manager.close();
}