0

異なるアクティビティ間でデータを渡すために使用するのと同じプロセスを使用できますか?これは、アクティビティとカーソルアダプタ間のデータの受け渡しにも機能します。生成されたエラーは実行時ではなく、コンパイルです

The constructor Intent(MyAdapterQuestion, Class<Basic_database_questionsActivity>) is undefined

Intent i = new Intent(MyAdapterQuestion.this, Basic_database_questionsActivity.class);
            Bundle b = new Bundle();
            // get the current value of timerStart variable and store it in timerlogic
            //Log.e(LOGS, "Whatis the value of timerstart inside the intentcalls method" + aInt);

            b.putInt("timerlogic", aInt);

MyAdapterQuestion という名前のアダプターと Basic_database_questionsActivity という名前のアクティビティがあります。

メソッド bindView メソッド内にカウンターがあります

public void bindView(View v, Context context, Cursor c) {

     if(radiopos1.isChecked())
        {

          // i want to update my main activity 
    // this method increment the correct answer by one I want to get that value and //pass it back to the activity      
    correctAnswer();

        }

    }
4

1 に答える 1

2

いいえ。インテントをアダプターに送信することはできません。アクティビティはアダプターを作成したので、アダプターと通信できるはずです。メソッドを呼び出すか、コンストラクターでパラメーターを渡すなどのいずれかによって。

編集:コード例を追加

アダプタがアクティビティでメソッドを呼び出す必要がある場合は、次のようにすることができます。

MyAdapterQuestion で:

// Stores a reference to the owning activity
private Basic_database_questionsActivity activity;

// Sets the owning activity (caller should call this immediately after constructing
//  the adapter)
public void setActivity(Basic_database_questionsActivity activity) {
    this.activity = activity;
}

// When you want to call a method in your activity (to get or set data), you do
//   something like this:
activity.setCorrectAnswer(answer);

Basic_database_questionsActivity では:

// In the place where you create the adapter, do this:
MyAdapterQuestion adapter = new MyAdapterQuestion(parameters...);
adapter.setActivity(this); // Passes a reference of the Activity to the Adapter

public void setCorrectAnswer(int answer) {
    // Here is where the adapter calls the activity back
    ...
}

理解していただければ幸いです。必要に応じてアダプターがアクティビティーのメソッドを呼び出せるように、アダプターがアクティビティーへの参照を取得する方法が必要なだけです。

注:より良いプログラミング スタイルは、Activity をパラメーターとしてアダプター コンストラクターに含めることですが、アダプター コンストラクターのコードを投稿していないので、あまり混乱させたくありません。

于 2012-07-04T16:47:46.383 に答える