В основном я создаю кнопки в цикле for, мне нужно, чтобы каждая кнопка возвращала другое значение при нажатии.Разработка Android: Передача параметра в onClickListener()
Я думал, что создание моего собственного onClickListener() и передача данных, необходимых в качестве параметра при инициализации, будут работать. По-видимому, нет синтаксических ошибок в том, что я придумал, но когда кнопка нажата во время выполнения приложения, происходит сбой.
Heres упрощенная версия того, что у меня есть до сих пор.
int counter = 1;
for(Program element : someList)
{
//some other code for dynamically creating textviews to stick the buttons in
//code which creates the buttons on the fly
moreInfo = new Button(this);
moreInfo.setText("More Info");
moreInfo.setOnClickListener(new DynamicOnClickListener(counter));
counter++;
}
Класс пользовательского слушателя
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class DynamicOnClickListener implements OnClickListener
{
int counter;
public DynamicOnClickListener(int acounter) {
this.counter = acounter;
}
public void onClick(View v) {
Log.v("DynamicOnClickListener","1");
Toast.makeText(v.getContext(), counter, Toast.LENGTH_LONG).show();
}
}
Таким образом, в теории, если это работает каждую кнопка будет возвращать другое число, надежду, что имеет смысл.
Как это сбой? (logcat) – DigCamara
logcat очень нужен :) – Triode