データベースクラスのgetName()メソッドからデータを取得し、ListViewにそれらのデータを入れたいと思います。このアクティビティを開こうとするたびにクラッシュします。SQLite DBからListViewを持つ他のアクティビティにデータを取得するには
Caused by : java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.addAll(java.util.Collection)' on a null object reference"
これは私がコードの下に実行したときに表示されるエラーMSGです:
public class ListActivity extends android.app.ListActivity {
ListView mListNames;
ArrayList<String> mNames;
DBForm dbForm = new DBForm(this);`
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
mListNames = (ListView) findViewById(android.R.id.list);
mNames.addAll(dbForm.getName());
this.setListAdapter(new ArrayAdapter<>(this, R.layout.list_head, mNames));
}
}
そして私は保存し、DBクラス内のデータを取得する方法この:
public ArrayList<String> getName() {
ArrayList<String> array_list = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("select name from contacts" , null);
res.moveToFirst();
while (!res.isAfterLast()) {
array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));
res.moveToNext();
}
res.close();
return array_list;
}
私のDBには他のビューで取得できるデータがあります。しかし、このListViewはDBから何も取得していません。それでも、私はあなたの解決策をチェックするつもりです。ありがとうございました。 – KirTan