gpt4 book ai didi

java - 在 Android Studio 中从 SQLite 数据库中以字符串形式检索数据

转载 作者:搜寻专家 更新时间:2023-11-01 08:19:04 25 4
gpt4 key购买 nike

我想将名称保存在 SQLite 数据库中,稍后在另一个 Activity 中我想将该名称作为字符串值检索。但是我无法从数据库中获取数据。请帮帮我。我的代码如下,

数据库助手:

    private static final String TAG = "DatabaseHelper";
private static final String TABLE_NAME = "user";
private static final String COL1 = "ID";
private static final String COL2 = "name";

public void onCreate(SQLiteDatabase db) {String createTable =
"CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY
AUTOINCREMENT, " + COL2 +" TEXT)";
db.execSQL(createTable);}

public boolean addData(String item) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL2, item);

Log.d(TAG, "addData: Adding " + item + " to " + TABLE_NAME);

long result = db.insert(TABLE_NAME, null, contentValues);

if (result == -1) {
return false;
} else {
return true;
}
}

主要 Activity :

    mDatabaseHelper=new DatabaseHelper(this);
Username=(EditText)findViewById(R.id.user);
saveBtn=(Button)findViewById(R.id.button);

saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String newEntry = Username.getText().toString();
AddData(newEntry);
Username.setText("");

Intent intent = new Intent(MainActivity.this, HomeActivity.class);
startActivity(intent);
}
});

}
public void AddData(String newEntry) {
boolean insertData = mDatabaseHelper.addData(newEntry);
}
}

首页 Activity :

public class HomeActivity extends AppCompatActivity {

DatabaseHelper mDatabaseHelper;
String Username;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);

mDatabaseHelper = new DatabaseHelper(this);

}

}

在这里,在这个家庭 Activity 中,我想获取字符串形式的用户名,但我不知道该怎么做。请帮助我...

最佳答案

要检索数据,您可以运行将数据提取到 Cursor 中的查询。 Cursor 将由 0-n 行组成,并且将具有与查询中定义的一样多的列。然后,您移动行并使用适当的 Cursor get????? 方法获取实际数据。

例如,您可以将以下方法添加到您的 DatabaseHelper 中:-

public String getName(long id) {

String rv = "not found";
SqliteDatabase db = this.getWritableDatabase();
String whereclause = "ID=?";
String[] whereargs = new String[]{String.valueOf(id)};
Cursor csr = db.query(TABLE_NAME,null,whereclause,whereargs,null,null,null);
if (csr.moveToFirst()) {
rv = csr.getString(csr.getColumnIndex(COL2));
}
return rv;
}

然后 String name = mDatabaseHelper.getName(1); 可以使用上面的内容。

  • 请注意,这假定存在 ID 为 1 的行。

关于java - 在 Android Studio 中从 SQLite 数据库中以字符串形式检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53983226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com