2017-04-04 11 views
0

私はrecyclerviewのbuttonclickでデータを更新しようとしています: 私は自分のデータベースをrecyclerviewに表示することができ、ボタンをクリックするとそのマークを更新したいと思います(stackoverflowのシステムbtwのように)。recyclerview Androidで自分のデータベースにアクセスする方法は?

私はアダプターワゴン(recyclerview用)でこれを作っています。ボタンをクリックすると呼びたいと思います。

public void UpdateData() { 
     myDb = new DatabaseHelper(this) 
     String marksafter; 
     int marksint = Integer.getInteger(marks.getText().toString()); 
     marksint = marksint + 1; 
     marksafter = Integer.toString(marksint); 
     myDb.updateData(id.getText().toString(),marksafter); 

    } 

しかし、「これ」は私にエラーをもたらしました。これを何に置き換えることができますか?

+0

この記事をたどることができますか? 'UpdateData'はどのクラスですか? –

+0

私は、RecyclerViewまたはそのアダプタ内のDataBaseにアクセスしたくないです。データベースの操作を処理する親アクティビティまたはフラグメントを知らせます。 – midhunhk

+0

@MelvinAuvrayどのエラーが表示されますか?また、アダプターからデータベースを更新しないでください。その代わりに、あなたのアクティビティやフラグメントと通信するのに役立つインターフェイスをアダプタに持たせることができます。次に、アクティビティやフラグメントのデータベースを更新する必要があります。 – pk4393

答えて

1

@MelvinAuvray DatabaseHelperクラスのコンストラクタ

public DatabaseHelper(Context context) { 
    super(context, DATABASE_NAME, null, 1); 
} 

ごとに、あなたは

myDb = new DatabaseHelper(this); 

に、アクティビティの参照やアプリケーションの参照を渡す必要がありますが、あなたは間違っていることにViewHolderの参照を渡しています。

とデータベースのデザインパターンのために、あなたは `DatabaseHelper`のコンストラクタで何

http://wale.oyediran.me/2015/04/02/android-sqlite-dao-design/

+0

どうすればいいですか?あなたは私に事例や味方を教えてもらえますか? ViewHolderでViewHolderの代わりにActivity参照またはApplication参照をどのように渡すことができますか? –

+0

@MelvinAuvray私の編集された答えを確認してください – pk4393

+0

私はそれをキャッチしなかった、私のリサイクラビューで私のデータベースを取得することができますか?そして私ができなければ、どうすればこの問題を回避できますか? –

関連する問題