将数据库中的数据显示到文本视图(Android)

时间:2015-10-15 14:37:49

标签: java android

这是我的数据库类代码(DatabaseHelper.java)

public Cursor getAllData(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor res = db.rawQuery("select * from "+TABLE_NAME,null);
        return res;
    }

这是另一个类(MainSuggestion.java)

public class MenuSuggestion extends AppCompatActivity {
    DatabaseHelper myDb;
    @Override 
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu_suggestion);
<br/>
        Cursor res = myDb.getAllData();
        if (res.moveToFirst()) {             
            TextView bmi = (TextView) findViewById(R.id.textView9);
            TextView kcal = (TextView) findViewById(R.id.textView10);
            bmi.setText(res.getString(3));
            kcal.setText(res.getString(4));
        }
    }
}

有人可以告诉我,我的代码有什么问题吗?

2 个答案:

答案 0 :(得分:4)

这不起作用的确切原因是因为“myDb”在此行上为空。

 Cursor res = myDb.getAllData();

但是,我建议你Running a Query with a CursorLoader。它可能看起来有点过分,在主线程上加载数据库中的东西可能会导致ANR错误。

答案 1 :(得分:0)

从数据库查询数据,你必须使用:

this.getReadableDatabase();

如果要在数据库中编写,更新,删除数据,请使用getWritableDatabase()