2012-04-09 49 views
1

我對編程感到陌生,但有一些閒暇時間,剛剛拿到了一款新的android平板電腦,所以認爲它的時間學習。我玩了一個棋盤遊戲,有很多套牌在整個遊戲過程中畫出來,並決定只需要一個應用程序顯示21個套牌,然後點擊一個套牌,然後隨機顯示其中一張套牌。你讀了卡片,對其採取行動,點擊卡片並消失。在Eclipse/Android上利用多個按鈕

因此,我有一個佈局,所有21副牌(7×3)每個單獨的按鈕。因此我在1屏幕上有21個按鈕。根據教程,我一直在關注我需要聲明.java文件上的按鈕button1 =(Button)findViewById(android.R.id.button1)。但它只能選擇聲明3個按鈕,之後我會得到厄運的紅色x。

我該如何去聲明所有21個按鈕?或者我不需要聲明這些按鈕?

任何幫助將是偉大的! (可能還需要幫助找到一種方法來隨機化「繪製」功能,所以不要驚訝再次看到我)

回答

0

如果你奠定了在XML每個按鈕(main.xml中或類似的東西),然後是的,如果你想擁有他們做任何事,你有像你說的那樣宣佈按鈕。

Button button1 = (Button) findViewById(R.id.button1); 

通過以這種方式輸入,我假設你沒有在代碼中聲明更高級別的按鈕,如類級字段。另外,你運行方法setContentView(R.layout.main);?

所以我們要清楚:除非你鍵入Button b1;按鈕b2;按鈕b3就在你的類行的下面(公共類YourClassName(){,每次你嘗試實例化一個按鈕時,你必須說Button b1 =(Button)findViewById(R.id.button1);如果你確實做了class-那麼你可以像你在原始問題中顯示的代碼一樣,它只是button1 =(Button)findViewById(R.id.button1)。這種區別有意義嗎?

+0

的的setContentView(R,layout.main);是直接在我輸入的行上方的行(不確定它的作用;是由eclipse設置的代碼的一部分) – bribrem 2012-04-09 00:43:08

+0

您是否將按鈕佈置在XML文件中?例如res/layout/main.xml?如果是這樣,setContentView()是告訴你的.java文件屏幕應該是什麼樣子。它將視圖設置爲您的佈局文件,我懷疑它是main.xml(或者佈局按鈕的位置)。無論如何,你是在處理一個錯誤?如果是這樣,那是什麼? – Davek804 2012-04-09 00:45:31

+0

我有代碼Button button1 =(Button)findViewById(R.id.button1);並且第一個按鈕1以黃色下劃線並且表示(當光標停留時)「局部變量按鈕1的值不被使用。一旦我向按鈕發出命令,它會消失嗎? – bribrem 2012-04-09 00:53:14

0

您確實需要定義每個按鈕。使用如下:

Button button1 = (Button)findViewById(R.id.idofbutton1); 
Button button2 = (Button)findViewById(R.id.idofbutton2); 
Button button3 = (Button)findViewById(R.id.idofbutton3); 
Button button4 = (Button)findViewById(R.id.idofbutton4); 

等等等等

0

每當你宣佈一個按鈕(這是一個對象):

Button button1 = (Button)findViewById(R.id.idofbutton1); 
Button button2 = (Button)findViewById(R.id.idofbutton2); 

請務必添加 「ID」 的XML佈局:

<Button 
    android:id="@+id/idofbutton1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button1" 
    android:textSize="20px" > 
</Button> 

<Button 
    android:id="@+id/idofbutton2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button2" 
    android:textSize="20px" > 
</Button>