0

だから私がやろうとしているのは、データベースに挿入することです。次のコードをオンラインで見つけました

http://www.vogella.com/articles/AndroidSQLite/article.html

私にとって重要なことは、次のブロックに示されています

ArrayAdapter<Comment> adapter = (ArrayAdapter<Comment>) getListAdapter();
Comment comment = null;
switch (view.getId()) {
case R.id.add:
  String[] comments = new String[] { "Cool", "Very nice", "Hate it" };
  int nextInt = new Random().nextInt(3);
  // Save the new comment to the database
  comment = datasource.createComment(comments[nextInt]);
  adapter.add(comment);

ご覧のとおり、コードは arrayAdapter を使用しており、それを定義するためにメソッドを使用しています

getListAdapter()

クラスのどのメソッド

ListActivity

したがって、このクラスが次のように拡張されていることは容易に推測できます。

public class TestDatabaseActivity extends ListActivity

今、私たちは私の問題に到達しました。同じことを同期アクティビティで実行しようとしていますが、同期タスクを実装するには、次のように別のクラスを拡張する必要があります

public class UserLoginTask extends AsyncTask<Void, Void, Boolean>

私が試したのは、以下に示すように、クラス UserLoginTask とクラス ListActivity の間の関係を isA 関係から hasA 関係に変更することです

//hasA relationship isA relationship
ListActivity listActiity;

したがって、データのブロックは次のように編集されます

ArrayAdapter<Comment> adapter =    (ArrayAdapter<Comment>) ((ListActivity) listAdapter).getListAdapter();
// Save the new comment to the database
comment = datasource.createComment(comments[nextInt]);
adapter.add(comment);

ただし、これにより、その行を参照するヌルポインター例外が発生します

adapter.add(comment);

助言がありますか ?事前に感謝します

4

0 に答える 0