Android按钮
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"元素来完成的。这是一个AndroidImageButton
XML示例:
<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:onClick
XML属性。 " 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. } }