Я просматривал множество учебников, и я все еще не могу найти то, что ищу. Мне нужно иметь информацию, которая хранится в моей базе данных SQLite, показанной в ListView. У меня есть база данных, и я знаю, что она имеет в ней правильную информацию, однако, когда я смотрю на страницу с моим ListView, ничего не существует. Приложение не сбой и ошибок нет, оно просто пустое. Для справки, ListView материал находится в первую очередь кода, а Курсор для базы данных находится в нижней части второй части кода. Кроме того, обратите внимание, что я довольно новичок в Android, и я мог бы пропустить что-то очень простое.Заполнение ListView из базы данных Sqlite
Не стесняйтесь задавать любые вопросы и благодарить за любые ответы!
Вот некоторые фрагменты моего кода:
public class Main_Screen extends Activity implements OnClickListener {
Button Test;
Button New;
ListView PassEntries;
DBHelper myDb;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_main);
Test = (Button) findViewById(R.id.buttonTEST);
// This button is meant to refresh the ListView
New = (Button) findViewById(R.id.button10);
// This button takes the user to a new screen where they input the data into the Database
PassEntries = (ListView) findViewById(R.id.listView1);
openDB();
populatePassEntriesFromDB();
Test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
populatePassEntriesFromDB();
}
});
New.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
myDb.close();
Intent NewPass = new Intent(getApplicationContext(), NewPass.class);
startActivity(NewPass);
}
});
}
private void populatePassEntriesFromDB() {
// TODO Auto-generated method stub
Cursor CR = myDb.getAllRows();
String[] fromFieldNames = new String[]
{DBinfo.ACC_NAME};
int[] toViewIDs = new int[]
{R.id.nameView};
ListAdapter Adapter = new SimpleCursorAdapter(
this,
R.layout.list_view_display,
CR,
fromFieldNames,
toViewIDs
);
setListAdapter(Adapter);
}
private void setListAdapter(ListAdapter adapter) {
// TODO Auto-generated method stub
}
private void openDB() {
// TODO Auto-generated method stub
myDb = new DBHelper();
myDb.open();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
И мои базы данных классов -
public class DatabaseOperations extends SQLiteOpenHelper {
public static final int database_version = 1;
public String CREATE_QUERY = "CREATE TABLE table_info (" +
"acc_name TEXT, "+
"acc_pass TEXT, "+
"acc_notes TEXT)";
public DatabaseOperations(Context context) {
super(context, DBinfo.DATABASE_NAME, null, database_version);
// TODO Auto-generated constructor stub
Log.d("Database operations", "Database created");
}
@Override
public void onCreate(SQLiteDatabase sdb) {
// TODO Auto-generated method stub
sdb.execSQL(CREATE_QUERY);
Log.d("Database operations", "Table created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public void putInformation(DatabaseOperations dop, String acc_name, String acc_pass, String acc_notes)
{
SQLiteDatabase SQ = dop.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(DBinfo.ACC_NAME, acc_name);
cv.put(DBinfo.ACC_PASS, acc_pass);
cv.put(DBinfo.ACC_NOTES, acc_notes);
// cv.put(DBinfo.ACC_TYPE, type);
long k = SQ.insert(DBinfo.TABLE_NAME, null, cv);
Log.d("Database operations", "One raw inserted");
}
public Cursor getInformation(DatabaseOperations dop)
{
SQLiteDatabase SQ = dop.getReadableDatabase();
String[] coloumns = {DBinfo.ACC_NAME,DBinfo.ACC_PASS,DBinfo.ACC_NOTES};
Cursor CR = SQ.query(DBinfo.TABLE_NAME, coloumns, null, null, null, null, null);
return CR;
}
}
-
public class DBHelper {
public DBHelper()
{
}
public static abstract class DBinfo implements BaseColumns
{
public static final String ACC_NAME = "acc_name" ;
public static final String ACC_PASS = "acc_pass" ;
public static final String ACC_NOTES = "acc_notes" ;
public static final String DATABASE_NAME = "acc_info" ;
public static final String TABLE_NAME = "table_info" ;
}
public void open() {
// TODO Auto-generated method stub
}
public Cursor getAllRows() {
// TODO Auto-generated method stub
return null;
}
public void close() {
// TODO Auto-generated method stub
}
}
После изменения его я получаю эти ошибки из Eclipse: ошибка синтаксиса, вставить «VariableDeclarators», чтобы завершить \t LocalVariableDeclaration \t - PassEntries не может быть разрешена к типу – JayBoe
я поставил его так и до сих пор получил ошибку, однако когда я изменил его на 'PassEntries.setAdapter (Adapter)', он не дал никаких ошибок. Неужели это работает для того, что мы пытаемся сделать? – JayBoe
Хорошо, а на _Cursor_, каков должен быть тип возврата? – JayBoe