2012-11-14 45 views
0

我是編寫Android應用程序的noob。
以下有關聲明按鈕的2個示例全部來自Android開發人員網站。 (所以他們都應該是正確的和工作。)爲什麼要在MainActivity.java中的onCreate()中聲明按鈕?

例1:從http://developer.android.com/training/basics/firstapp/building-ui.html

<Button 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/button_send" 
android:onClick="sendMessage" /> 

示例2:http://developer.android.com/guide/topics/ui/declaring-layout.html#attributes

<--! (In xml file) Define a view/widget in the layout file and assign it a unique ID: --> 
<Button android:id="@+id/my_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/my_button_text"/> 


//(In java file) Then create an instance of the view object and capture it from the layout (typically in the onCreate() method): 
Button myButton = (Button) findViewById(R.id.my_button); 

1)所以我在想分配「 Android:ID「爲我的按鈕?

2)如果我在xml文件中爲我的按鈕分配了「Android:id」,但是我沒有在「MainActivity.java」的「onCreate()」中聲明按鈕,會發生什麼?

+0

您將該按鈕分配給onCreate中的變量,以便您可以附加事件處理程序和事件,如果不這樣做,那麼您只需要一個不執行任何操作的按鈕。 – TheZ

+0

嗨TheZ:你是什麼意思的事件處理程序?如果你在點擊按鈕時意味着這個動作,那麼代碼只需在java文件中編寫一個「sendMessage()」動作監聽器來處理這個動作,它就可以工作。 – Sean

+0

當然,你可以使用佈局xml來分配一個onClick(事實上,Google已經做得很好,幾乎所有的選項都可以通過xml獲得),但是有時你需要(例如)激活/停用動態按鈕 – TheZ

回答

0

讓我們快速瀏覽一些內容。

android:id正是它聽起來像的,它是一個用於指定某些視圖的標識。比方說,例如,您在一個佈局中有兩個按鈕,並且您希望按鈕執行某些操作,或者您只是想更改按鈕的文本。您需要初始化Activity onCreate方法中的按鈕,以通過代碼來處理它們。該id用於區分視圖。在我們的兩個按鈕示例中,您可以給一個按鈕一個buttonOne的id和另一個buttonTwo。通過這種方式,Android知道您在代碼中引用他們時正在討論哪個按鈕。如果您將一個id分配給XML中的按鈕,而不是在代碼中引用它,則該按鈕不會執行任何操作。如果您需要關於初始化視圖的更多信息,請在我的網站上查看此帖。我是相當新到Android太讓我可以解釋的方式,你可以理解的事情你=]

http://www.androidianlabs.com/android-basics-lesson-one.html

1

安卓ID就是你的元素的標識,你的情況的按鈕。如果你沒有在onCreate方法中使用它,它將不會執行任何操作。當您爲按鈕創建任何偵聽器時,Id將很有用。即告訴你點擊時該做什麼。

你會使用這樣的東西。

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

     button.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
      } 
     }); 
相關問題