Я создал кучу ImageButtons
программно, находясь в цикле for. Они работали нормально, так как данные отображались в файле HorizontalScrollView
. Теперь мне нужно, чтобы каждый из них стал тусклым или ярким при нажатии. Первый щелчок установит Alpha(45); второй щелчок установит Alpha (255);.
Я не думаю, что полностью понимаю, как работают Views и onClickListener
. Кажется, примеры функций onClick
, которые я нашел, используют View. Как эта функция узнает, какая кнопка нажата? Возможно, есть более простой способ сделать то, что я хочу?
Вот ImageButtons
.
TableRow tr0 = new TableRow(this);
tr0.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
for(int but=0; but<ClueList.size(); but++){
ImageButton clueBut = new ImageButton(this);
clueBut.setBackgroundResource(0);
clueBut.setImageBitmap(ClueList.get(but).btmp);
//clueBut.setOnClickListener(this);
tr0.addView(clueBut);
}
Есть ли что-то, что мне нужно сделать, чтобы сделать кнопки идентифицируемыми? И как это передать в функцию onClick, которую нужно использовать?
-: Добавленная информация: - Я начинаю задаваться вопросом, проблема не в кнопках, а в том, как я построил экран. Добавлена дополнительная информация.
Активность Game — это основная игра, которая использует PuzzleView для верхней части экрана, содержащей игровую сетку. В нижней части находятся кнопки ImageButton, и я встроил их в класс Game.
public class Game extends Activity{
//various variables and stuff
private PuzzleView puzzleView; // The PuzzleView is from another .java file
// public class PuzzleView extends View
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
LinearLayout mainPanel = new LinearLayout(this);
mainPanel.setOrientation(LinearLayout.VERTICLE);
puzzleView = new PuzzleView(this);
mainPanel.addView(puzzleView);
HorizontalScrollView bottom = new HorizontalScrollView(this);
mainPanel.addView(bottom);
TableLayout clues = new TableLayout(this);
bottom.addView(clues);
TableRow tr0 = new TableRow(this);
for(int but=0; but<ClueList.size(); but++){
ImageButton clueBut = new ImageButton(this);
clueBut.setImageBitmap(ClueList.get(but).btmp);
tr0.addView(clueBut);
}
Когда я пытаюсь добавить ClickListener(это), я получаю сообщения об ошибках о том, что this
не может быть Game
. У меня есть аналогичные проблемы в функции onClick(View v)
, ссылающейся на View
. Это проблемы из-за того, что я создаю кнопки в Game Activity вместо класса View?
Спасибо