Android按钮

时间:2020-01-09 10:33:59  来源:igfitidea点击:

Android按钮是Android GUI组件,用户很容易点击(单击)。当用户在Android应用程序中点击Android按钮时,该应用程序可以响应该点击。本Android按钮教程将说明如何在Android应用中使用按钮。

Android按钮可分为两类。带有文本的按钮和带有图像的按钮。带有图像的按钮可以同时包含图像和文本。带有图像的Android按钮也称为图像按钮。本教程将介绍这两种按钮类型。

按钮

带有文字的标准Android按钮由Android类android.widget.Button表示。我们可以通过布局XML文件或者通过编程插入将"按钮"实例插入Android应用GUI。本教程将介绍这两种方法。

在布局文件中添加按钮

通过布局XML文件向Android应用添加"按钮"是通过在要放置"按钮"的位置的布局文件中插入"按钮"元素来完成的。这是布局文件中的Android按钮的示例:

<Button
    android:id="@+id/the_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    />

这个例子通过XML声明了一个Button实例。 "按钮"的ID为" the_button"。该ID将由Android Studio自动生成,并且可以通过代码中的R.id对象获得。按钮的大小设置为环绕其内容,这意味着按钮将具有在按钮上显示的文本的近似宽度和高度。按钮上显示的文本是在sr / main / res / values / strings.xml文件中使用键button_text定义的。

以编程方式添加按钮

我们也可以通过编程方式在Android应用中添加一个"按钮"。我们可以在将托管按钮的Activity子类的onCreate()方法内进行此操作。这是一个示例,显示了如何在活动的onCreate()方法中将"按钮"插入活动的布局中:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = new Button(this);
        button.setText("Touch That!");

        RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rootlayout);
        relativeLayout.addView(button);
    }
}

首先创建一个Button实例,将活动实例作为Context传递给Button构造函数。其次,设置要在文本上显示的文本。第三,获得对活动的根布局(" ViewGroup")的引用,并使用" addView()"将" Button"实例添加到其中。

图像按钮

Android还有一个可以使用的" ImageButton"。顾名思义," ImageButton"组件是一个带有图像的按钮。 ImageButton由Android类android.widget.ImageButton表示。

在布局文件中添加ImageButton

通过布局XML文件向Android应用添加" ImageButton"是通过在布局文件中我们要放置" ImageButton"的位置插入" ImageButton"元素来完成的。这是一个AndroidImageButtonXML示例:

<ImageButton
    android:id="@+id/theimagebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/the_image_button_icon"
        />

请注意android:src属性如何引用Android项目中的可绘制对象。这是将在" ImageButton"上显示的图像。

带有图像和文本的按钮

如果我们希望Android按钮同时包含图片和文本标签,则可以使用Button类。这是当我们在布局文件中使用Button元素时的外观示例:

<Button
        android:id="@+id/imageandtextbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_text"
        android:drawableLeft="@drawable/ic_launcher"
        />

按钮单击事件

应用可以通过两种方式监听Android按钮上的点击(轻击)。

为按钮添加点击侦听器的第一种方法是在"活动"子类中声明一个方法,该子类托管着单击按钮时要执行的按钮。我们声明"活动"子类中的哪个方法要在"按钮" XML元素内执行。这是一个例子:

<Button
    android:id="@+id/the_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    <b>android:onClick="onButtonClick"</b>
        />

注意android:onClickXML属性。 " android:onClick"属性的值是托管" Button"的" Activity"子类中方法的名称,该按钮在单击按钮时将被调用。 onButtonClick()方法的声明如下所示:

public void onButtonClick(View view){
    //do something when button is clicked.
}

请记住,必须在"活动"子类中声明此方法,该子类在其用户界面中托管(显示)按钮。

将点击侦听器添加到Android按钮的第二种方法是获取对Button实例的引用,然后以编程方式将点击侦听器添加到按钮。这是如何以编程方式将点击侦听器添加到Android按钮的示例:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = new Button(this);
        button.setText("Touch That!");

        button.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MainActivity.this.onButtonClick(v);
            }
        });

        RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rootlayout);
        relativeLayout.addView(button);
    }

    public void onButtonClick(View view){
         //do something when button is clicked.
    }

}