按下按钮时我想将文本更改为数据库列值,我知道它错了,但这里是代码:
private void MostraDados() {
// TODO Auto-generated method stub
final TextView text = (TextView) findViewById(R.id.tvUSUARIO);
Button mostrar = (Button) findViewById(R.id.bMostrar);
mostrar.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
db = openOrCreateDatabase("dbtest.db", Context.MODE_PRIVATE, null);
String q = "SELECT * FROM dbtest.db WHERE usuarioorigem='";
text.setText(q);
//text.execSQL("DROP COLUMN IF EXISTS usuarioorigem");
}
});
}
答案 0 :(得分:0)
SQL编写不正确。您必须从列中选择。并且您将查询字符串传递给文本视图。您应首先查看如何使用游标查询数据库,以及如何从游标中检索所需内容。
所以我会研究如何使用curosr,所有这些都可以在Android文档中找到,你可能想在模拟器中尝试API演示我相信你可以学习如何在那里使用光标好。所以看看http://developer.android.com/reference/android/database/Cursor.html。
答案 1 :(得分:0)
获得光标后,您可以执行以下操作:
while(c.moveToNext(){
text.setText(c.getString(0))
}
答案 2 :(得分:0)
您的代码缺少一些关键部分,例如管理游标和数据库的DatabaseClass。
private void MostraDados() {
final TextView text = (TextView) findViewById(R.id.tvUSUARIO);
Button mostrar = (Button) findViewById(R.id.bMostrar);
mostrar.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// our missing a database helper
MyDatabaseClass dbhelper = new MyDatabaseClass();
dbhelper.open();
Cursor result = dbhelper.doMyQuery();
String mystring = result.getString(0);
text.setText(mystring);
dbhelper.close();
}
});
....
public class WorkoutDbAdapter {
....
public Cursor doMyQuery()
{
return this.mDb.query( yourQuery );
}
}
这是你需要的最低限度,即使上面我错过了很多细节。搜索有关创建和使用数据库的一些教程。
然而,基本上你需要重新获得光标,设置光标的位置,或者cursor.moveNext(),然后获取可以分配给textField的值。
您的源代码缺少对数据库的正确调用以及对游标的访问。希望你会找到一些体面的教程,让你为你充实。