2012-11-14 44 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 
      } 
     }); 
相关问题