这篇开始学习Android的控件。Android给我提供了很多的控件供我们使用,我们不可能一一去学习,我们学习其中的几个,掌握如何使用控件,至于具体的控件可以在使用的时候自己查找资料来使用它。这篇文章主要讲述Button的使用。
一、如何添加一个Button到程序当中
1.1 通过XML添加Button
1.2 通过代码添加Button
二、如何添加Button的监听
2.1 通过XML指定响应函数
2.2 通过代码指定按钮响应函数
一、如何添加一个Button到程序当中
1.1 通过XML添加Button的步骤
首先打开XML文件,你可以选择在建立工程时,系统给你自动建立的文件,这样会省事很多。当然你也可以自己新建一个XML文件。往XML文件中添加如下代码。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dbdaf" /> </RelativeLayout>
前面的文章讲过XML文件的使用,这个XML文件内容也很简单,就是往RelativeLayout这个布局里面添加一个Button的元素,Button上面显示“dbdaf”。如果你是使用系统自动建立的XML文件,那么这个时候你就可以运行看到Button了。如果你是自己建立文件的。那么你需要在Activity里面 setContentView(R.layout.yourlayout);把你的布局显示出来,才能看到Button。
1.2 通过代码添加Button
通过XML确实很方便就可以添加一个按钮,但有时候XML不能满足要求,有时候按钮是需要通过代码动态添加的。比如说,你要实现一个功能要有很多个Button,但是具体多少个不知道,要根据代码的运行情况来确定。这个时候XML就满足不了要求了,所以需要你动态去添加按钮。添加以下代码就可以添加一个Button。
RelativeLayout rl = new RelativeLayout(this); //新建一个布局 Button btn = new Button(this); //新建一个Button btn.setText("dbdaf"); //设置Button的内容 rl.addView(btn); //把Button添加到布局里面 setContentView(rl); //把布局显示出来
二、如何添加Button的监听
按钮添加进程序里面了,但是它仅仅是显示出来了,现在我们要处理这个按钮了,按钮什么时候被按下,我怎么知道按钮被按下了。Android系统在检测到按钮被按下时,就会调用一个事先你已经定义好的函数,所以你需要按钮按下之后完成什么事情,你就把你的代码添加到事先定义好的函数里面。为了让Android系统准确调用函数,所以你要先告诉系统你要用什么函数。下面介绍两种指定响应函数的方法。
2.1 通过XML指定响应函数
刚才我们通过XML添加Button,我们需要在这个Button里面添加一个指定函数的参数。如下代码所示。
<Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dbdaf" android:onClick="onBtnClick" />
文件里面添加了一行android:onClick="onBtnClick”,这行就指定了,如果按钮按下就去调用这个函数。
然后我们需要在代码里面添加这个函数。函数如下:
public void onBtnClick(View v) { Toast.makeText(this, "Clicked", Toast.LENGTH_SHORT).show(); }
这里如果按钮被按下了,就会显示Clicked。写这个函数的时候需要注意以下几点:第一,函数名必须与XML文件中的一致。
第二,因为这个函数是要被系统调用的,所以必须是public。
第三,因为这个函数是有固定形式的,所以必须带一个View的参数。
2.2 通过代码指定按钮响应函数
首先要找出Button,代码如下:
Button btn = (Button)findViewById(R.id.myButton);
然后设置监听,代码如下:btn.setOnClickListener(new onBtnClick());
新建一个类实现接听接口,代码如下:class onBtnClick implements View.OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub Button btn = (Button)v ; btn.setText("clicked"); } }
代码中onBtnClick的类实现了View.OnClickListener这个接口。这个接口里面有一个函数就是onClick(View v);如果按钮按下了,这个函数就会被系统调用了。