Можно ли передать аргумент для слушателя при нажатии кнопки:Пропустить аргумент при вызове setOnClickListener?
protected void onCreate(Bundle savedInstanceState) {
....
String myArg = "Hello";
Button button1 = (Button)findViewById(R.id.myButton);
button1.setOnClickListener(myListener);
String myArg = "Goodye";
Button button2 = (Button)findViewById(R.id.myOtherButton);
button2.setOnClickListener(myListener);
}
OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// print the value from the passed in argument myArg
Log.v("TEST", myArg);
}
};
Это просто пример, а не отражение того, что я на самом деле wan't сделать, но он иллюстрирует этот вопрос.
В основном я хочу передать myArg слушателю, поэтому, когда кнопка нажата, у нее есть доступ к переменной myArg.
Я знаю, что могу сделать это как встроенный анонимный класс, но у меня будет много кнопок, и логика щелчка будет одинаковой для всех из них. Мне нужен аргумент, поскольку для каждой кнопки это будет отличаться.
FYI: Мое реальное использование требует, чтобы аргументом был объект View.
Когда вам нужна переменная связана? Другими словами, когда вы определяете значение переменной, к которой вы хотите иметь доступ к 'onClickListener()'? –