理解Java语句“Button myButton =(Button)findViewById(R.id.my_button);”

时间:2014-02-14 04:25:57

标签: java android

有人可以解释这句话的语法:

Button myButton = (Button) findViewById(R.id.my_button);

我认为它是在说“创建一个名为myButton的Button新实例”。等号似乎表明myButton应初始化为某些东西,但我的研究似乎表明等号后的部分基本上是说myButton的这个实例被挂钩到XML布局文件中定义的Button。

?“(按钮)”有什么意义 - 它似乎有点多余。

?myButton是否被初始化,只是挂钩到实际的XML按钮?

?我正在搜索,找不到像这样的Java语句的任何描述 - 这是Android Java独有的吗?有人可以解释这里的语法吗?

THX。

4 个答案:

答案 0 :(得分:4)

(Button)它将findViewById(R.id.my_button);方法转换为Button myButton对象

public View findViewById (int id)

Finds a view that was identified by the id attribute from the XML 
that was processed in onCreate(Bundle)

返回

The view if found or null otherwise. 

答案 1 :(得分:3)

1。)myButtonButton类型的变量。通过声明Button myButton来进行此绑定。

2。)=运算符表示赋值。您正在将内容分配给变量myButton

作业的内容是什么?

3。)一个android小部件,使用方法findViewById() #findViewById()返回,然后通过说Button

转换为(Button)

总而言之,您将Button分配给myButton,是的,该按钮现在已连接到xml按钮,其中包含您传递的ID到findViewById()

答案 2 :(得分:2)

按钮是一个视图。 findViewById(int id)将返回给定视图id的View。由于findViewById仅返回一个View,因此您需要将其强制转换为Button,以便您可以访问按钮特定的方法。

答案 3 :(得分:1)

好的,让我们不知道,什么是Android中的Button?

这是我们使用的XML语法:

<Button android:id="@+id/my_button"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text="CLICK ME!!" />

现在在MainActivity.java,我们在此处使用

 Button myButton = (Button) findViewById(R.id.my_button); //here we are invoking button ID from xml.

actionListener我们在这里使用:

myButton.setOnClickEvent(new OnClickEvent(
          public void onClickEvent(View v){
            //DO SOMETHING AWESOME!
          }
        ));

了解更多信息按钮点击here

的实际效果