因此,我仍然在學習Android Studio,我試圖通過製作一個簡單的重擊式遊戲模糊我的方式。一個9個按鈕的網格被隱藏,當一個按鈕被點擊時,一個隨機數發生器設置一個int變量,然後通過一個開關設置下一個按鈕的可見性。Android Studio - 任何按鈕上的Clicklistener?
這一直很好,直到我想給分數int增加+1。每個按鈕都有它自己的clicklistener,它有自己的(當然非常低效的)拷貝,如果語句檢查它是否已經可見等,我不能讓它們全部更新相同的變量,因爲它需要聲明爲final,但是當我這樣做只是說不能分配變量。
那麼有可能在任何按鈕上做一個類似clicklistener的東西而不是特定的按鈕?然後,我可以定義和更新該方法中的變量(如果這是正確的術語)。
這裏的第一個按鈕的外觀快速複製一樣是可見的,直到第一次點擊 -
button0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
button0.setVisibility(View.INVISIBLE);
Random rand = new Random();
int n = rand.nextInt(9);
switch (n) {
case 0:
if(button0.getVisibility() == View.INVISIBLE){
button0.setVisibility(View.VISIBLE);
}else{
button0.setVisibility(View.INVISIBLE);
}
break; ... and so on
所以我想是這樣的(這顯然作品) -
button0 or button1 or button2 or button3 or button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int scoreint = 0;
scoreint++;
scoreText.setText(""+scoreint);
};
就像我說的,我知道這是做事最低效和最慢的方式,但我仍然在學習,喜歡以最簡單,最愚蠢的方式做事,以便我能夠獲得核心概念。我也在看教程,但我也喜歡一個小項目進入。謝謝你的幫助!
是有可能的,你檢查v.getId()對每個單獨的按鈕的ID來了解你點擊其中一個 – Blackbelt
非常感謝你的回覆,另一個答案已經說了類似的東西,所以它給了我一些東西來看看 - 再次感謝! – wgibbsw