2012-06-21 3 views
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(); 

     } 

    } 
+0

для любви к Богу, научиться форматировать свой код! это так плохо, что это почти оскорбительно! –

ответ

2

No. Вы не можете отправить Намерение к адаптеру. Действие создало адаптер, чтобы он мог общаться с ним. Либо путем вызова метода, передавая параметр в конструкторе, и т.д.

EDIT: Добавить пример кода

Если адаптер должен вызвать метод в деятельности, вы могли бы сделать что-то вроде этого:

В 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, чтобы он мог вызвать методы на нем, если это необходимо.

Примечание: Лучше стиль программирования будет включать активность в качестве параметра в конструкторе адаптера, но так как вы не отправляли код для конструктора адаптера я не хочу, чтобы запутать вас слишком много.

+0

не могли бы вы привести пример, пожалуйста, Дэвид, чтобы понять, понимаю ли я ответ. – alex

+0

Я добавил пример кода. Вы решили проблему? Вам нужна дополнительная помощь? –

Смежные вопросы