我在for循環中以編程方式創建了一堆ImageButtons
。他們工作得很好,數據顯示在HorizontalScrollView
。現在我需要每個人點擊時變暗或明亮。首先點擊setAlpha(45);第二次點擊將setAlpha(255);.我需要將onClickListener添加到一堆ImageButton中
我不認爲我完全理解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函數才能使用?
- :增加的信息: - 我開始懷疑問題是不是與按鈕,但與我建立屏幕的方式。更多信息添加。
遊戲活動是主要的遊戲,它使用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
錯誤。在涉及View
的onClick(View v)
函數中,我遇到了類似的問題。這些問題是因爲我在Game Activity而不是View類中構建按鈕嗎?
感謝
我已經加入上述的詳細信息視圖的ID。這些建議看起來與我在網上找到的相似,但是我得到了有關在'onClick'中使用'View'或在'onClickListener'中使用'this'的錯誤。也許我正在構建屏幕錯誤? – Agent0013 2011-06-17 15:20:49
你的Activity沒有實現OnClickListener接口,所以你不能使用'clueBut.setOnClickListener(this);'。要麼實現它('public class Game extends Activity implements OnClickListener {'),或者使用我發佈的代碼片段。如果您發現任何錯誤,請將其發佈,以便我瞭解您的具體問題。 – Aleadam 2011-06-17 15:41:23
我已經嘗試在遊戲類中添加'implements OnClickListener',並且我得到相同的錯誤。 '在類型視圖的方法setOnClickListener(View.OnClickListener)不適用於參數(新DialogInterface.OnClickListener(){})'看來對話框彈出我有當遊戲做的是與我有什麼干擾試圖用這些按鈕做。解決這個問題最簡單的方法是什麼?我開始嘗試將滾動按鈕移動到另一個類中,這是PuzzleView從另一個類中調用的方式,但它無法訪問Clues鏈接列表。 – Agent0013 2011-06-18 03:24:49