您的位置:华清远见教育科技集团 >> Android资料 >> Android系统控件Button 和 ImageButton  
 
Android系统控件Button 和 ImageButton
分享到:

Android系统控件Button是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处理方法;ImageButton用以实现能够显示图像功能的控件按钮。下面通过一个例子来加深对这两个控件的理解。

1.建立一个“ButtonDemo”的程序

程序包含Button和ImageButton两个按钮,上方是“Button按钮”,下方是一个ImageButton控件,如图-1所示。


代码清单1 main.xml

ButtonDemo在XML文件中的代码如代码清单1所示。

ButtonDemo在XML文件中的代码如代码清单1所示。

<Button android:id="@+id/Button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button01" >
    </Button>
    <ImageButton android:id="@+id/ImageButton01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </ImageButton>

在上述代码中,定义Button控件的高度、宽度和内容及ImageButton控件的高度和宽度,但是没定义显示的图像,在后面的代码中进行定义。

2.引入资源

将download.png文件复制到/res/drawable文件夹下,在/res目录上选择Refresh,就可以看到新添加的文件显示在/res/drawable文件夹下,同时R.java文件内容也得到了更新,否则提示无法找到资源的错误。

3.更改Button和ImageButton内容

在ButtonDemo.java中引入android.widget.Button和android.widget.ImageButton,并修改其代码如代码清单2所示。

代码清单2 ButtonDemo.java

Button button = (Button)findViewById(R.id.Button01);
    ImageButton imageButton = (ImageButton)findViewById(R.id.ImageButton01);
    button.setText("Button按钮");
    imageButton.setImageResource(R.drawable.download);

上述代码中,第1行代码用于引用在XML文件中定义的Button控件。

第2行代码用于引用在XML文件中定义的ImageButton控件。

第3行代码将Button的显示内容更改为“Button按钮”。

第4行代码利用setImageResource()方法,将新加入的png文件R.drawable.download传递给ImageButton。

4.按钮响应点击事件:添加点击事件的监听器

在ButtonDemo.java中添加代码清单3所示的代码。

代码清单3 ButtonDemo.java

final TextView textView = (TextView)findViewById(R.id.TextView01);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            textView.setText("Button按钮");
        }
    });
    imageButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            textView.setText("ImageButton按钮");
        }
    });

在本段代码中,第2行代码中button对象通过调用setOnClickListener()方法,注册一个点击(Click)事件的监听器View.OnClickListener()。

第3行代码是点击事件的回调方法。

第4行代码将TextView的显示内容更改为“Button按钮”。

这里我们来了解一下View.OnClickListener()。

View.OnClickListener()是View定义的点击事件的监听器接口,并在接口中仅定义了onClick()方法。当Button从Android界面框架中接收到事件后,首先检查这个事件是否是点击事件,如果是点击事件,同时Button又注册了监听器,则会调用该监听器中的onClick()方法。每个View仅可以注册一个点击事件的监听器,如果使用setOnClickListener()方法注册第二个点击事件的监听器,之前注册的监听器将被自动注销。

多个按钮注册到同一个点击事件的监听器上,代码如代码清单4所示。

代码清单4 多个按钮注册到一个点击事件的监听器上

Button.OnClickListener buttonListener = new Button.OnClickListener(){
        @Override
            public void onClick(View v) {
                switch(v.getId()){
                    case R.id.Button01:
                    textView.setText("Button按钮");
                    return;
                    case R.id.ImageButton01:
                    textView.setText("ImageButton按钮");
                    return;
                }
        }};
        Button.setOnClickListener(buttonListener);
        ImageButton.setOnClickListener(buttonListener);

该段代码中,第1行至第12行代码定义了一个名为buttonListener的点击事件监听器;第13行代码将该监听器注册到Button上;第14行代码将该监听器注册到ImageButton上。

 更多相关文章

·Android系统控件TextView和EditText
·Android界面布局之绝对布局
·Android界面布局之相对布局
·Android系统层次结构及分析
·Android 控件动画效果的实现