我创建了一个SQLite数据库。它没有显示所有记录:它只提供一条记录 我插入了多条记录,但数据库只播放了一条记录。
show record方法仅显示最后插入的记录 我想显示保存在数据库中的所有记录。
记录已成功添加。
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class ViewPeople extends AppCompatActivity {
private TextView textViewName;
private static final String SELECT_SQL = "SELECT * FROM persons";
private SQLiteDatabase db;
private Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_people);
openDatabase();
textViewName = (TextView) findViewById(R.id.textViewName);
c = db.rawQuery(SELECT_SQL, null);
c.moveToFirst();
showRecords();
}
protected void openDatabase() {
db = openOrCreateDatabase("PersonDB", Context.MODE_PRIVATE, null);
}
protected void showRecords() {
String name = c.getString(1);
textViewName.setText(name);
}
答案 0 :(得分:2)
您需要在循环中获取数据。
if (c.moveToFirst()){
do{
String name = c.getString(1);
// do what ever you want here
}while(c.moveToNext());
}
c.close();
答案 1 :(得分:0)
使用此lib在运行时查看数据库。
com.amitshekhar.android:debug-db:0.4.0
并查看所有记录,您必须使用此代码。
if (cursor.moveToFirst()) {
do {
tvName.setText(cursor.getString(0));
} while (cursor.moveToNext());
答案 2 :(得分:-1)
这不是错误,但默认情况下,Sqlite只返回一条记录。如果想要所有记录,那么你需要使用循环来完成它。
尝试执行以下操作,删除 c.moveToFirst(); showRecords(); 并添加以下代码。
while(c.moveToNext()){
showRecords();
}
并在showRecords方法中删除 textViewName.setText(name); 并添加textViewName.append(name +“\ n”);