Я создал группу ImageButtons
программно в цикле for.Они отлично работали, так как данные отображались в HorizontalScrollView
.Теперь мне нужно, чтобы каждый щелкнул тусклым или ярким.Первый щелчок установит Альфа (45);второй щелчок установит Alpha (255);.
Я не думаю, что полностью понимаю, как работает Views и onClickListener
.Кажется, onClick
примеры функций, которые я нахожу, берут вид.Как эта функция узнает, какая кнопка нажата?Возможно, есть более простой способ сделать то, что я хочу?
Вот эти 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?
-: Дополнительная информация: - Я начинаю задумываться, не проблема ли с кнопками, а с тем, как я построил экран,Добавлена дополнительная информация.
Игра - это основная игра, которая использует 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
.Это проблемы, потому что я строю кнопки в игровом действии вместо класса View?
Спасибо