Android基础控件之Button的基本使用

简介:

先贴几个链接,好东西:

  Android用户界面的详尽教程实例系列:

  http://www.cnblogs.com/aimeng/archive/2012/06/26/2563762.html

  android用户界面教程实例汇总:

  http://www.cnblogs.com/aimeng/archive/2012/06/25/2560905.html

 

  本文主要内容是Button,相关的链接:

  一个强大的学习贴:

  http://www.apkbus.com/android-48448-1-1.html

  官方文档资料:

  http://developer.android.com/reference/android/widget/Button.html

  http://developer.android.com/guide/topics/ui/controls/button.html

 

Button基本使用方法

  首先,添加Button控件到XML布局文件中。也可通过程序添加。

  在布局文件中设置按钮的一些属性,如位置,宽高,按钮上的字,颜色等。

  比较重要的是要给按钮一个id号,这是按钮唯一的名字。

  这样在程序中可以通过如下形式获得按钮:

  button = (Button)findViewById(R.id.buttonId);

 

处理按钮点击

  按钮点击有两种处理方法。

  第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法。

  另一种方法是典型的事件监听机制的应用形式,下面详细说明这两种方法。

 

1.通过onClick属性设置处理方法

  在XML布局文件中设置Button的属性:

  android:onClick="yourMethodName"

  然后在该布局文件对应的Acitivity中实现该方法:

 


  /** Called when the user touches the button */

  public void yourMethodName(View view)

  {

       // Do something in response to button click

  }

 

  需要注意的是这个方法必须符合三个条件:

  1.public

  2.返回void

  3.只有一个参数View,这个View就是被点击的这个控件。

 

2.使用setOnClickListener添加监听器对象

  关于事件监听模式,参见

  http://www.cnblogs.com/mengdd/archive/2012/09/08/2676587.html

 

  可以写一个内部类实现OnClickListener接口,在这个类中实现onClick方法,方法里面写在按钮点击时想做的具体工作。

  将这个内部类的对象传入按钮的setOnClickListener方法中,即完成监听器对象和按钮的绑定(在事件源Button上注册了事件监听器),这时候只要按钮被点击,那么监听器对象的onClick方法就会被调用。

  当然这里也不一定要自己写一个内部类出来,比如这个例子

 


  Button button = (Button) findViewById(R.id.button_send);

  button.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v) 

   {

          // Do something in response to button click

      }

  });

 

 

按钮基本操作实例

  奉上实例一个:

  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" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:padding="@dimen/padding_medium"
        android:text="@string/hello_world"
        tools:context=".ButtonActivity" />

    <Button
        android:id="@+id/button_first"
        android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:text="@string/buttonText"
         android:onClick="changeButtonColor"
        >       
    </Button>    
    
    <Button
        android:id="@+id/button_second"
        android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:text="@string/buttonText2"
         android:layout_below="@id/button_first"
         
        >       
    </Button>

 </RelativeLayout>

 

  Activity代码



package com.example.buttontest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ButtonActivity extends Activity 
{
    private Button button01 = null;
    private Button button02 = null;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        
        button01 = (Button)findViewById(R.id.button_first);
        button02 = (Button)findViewById(R.id.button_second);
       
        //绑定事件源和监听器对象
        button02.setOnClickListener(new MyButtonListener());
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        getMenuInflater().inflate(R.menu.activity_button, menu);
        return true;
    }
    
    //按钮1的点击事件
    public void changeButtonColor(View view)
    {
        button01.setBackgroundColor(getResources().getColor(R.color.red));
        
    }
    
    //内部类,实现OnClickListener接口
    //作为第二个按钮的监听器类
    class MyButtonListener implements OnClickListener
    {

        public void onClick(View v)
        {
            button02.setBackgroundColor(getResources().getColor(R.color.blue));
            
        }
        
        
    }

    
}

 

  运行截图                       

  点击前:

 

 

 

  点击后:

 

 

 

  相关的资源文件中内容

  strings.xml


<resources>

    <string name="app_name">ButtonTest</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_button">ButtonActivity</string>
    <string name="buttonText">ThisIsAButton</string>
    <string name="buttonText2">ThisIsAnotherButton</string>
</resources>

 

  colors.xml


<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <color name="red">#f00</color>
    <color name="green">#0f0</color>
    <color name="blue">#00f</color>
    <color name="black">#000</color>
</resources>



转载:http://blog.csdn.net/chaoyu168/article/details/49420185

目录
相关文章
|
2月前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
46 0
|
3月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
57 3
|
4月前
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
6月前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
102 4
|
6月前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
226 2
|
6月前
|
Java Android开发 开发者
17. 【Android教程】开关控件ToggleButton/Switch
17. 【Android教程】开关控件ToggleButton/Switch
83 2
|
6月前
|
XML Java Android开发
15. 【Android教程】按钮 Button/ImageButton
15. 【Android教程】按钮 Button/ImageButton
93 2
|
5月前
|
XML 数据格式
Android-自定义三角形评分控件
Android-自定义三角形评分控件
48 0
|
6月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
|
6月前
|
Android开发
Android 自定义View 测量控件宽高、自定义viewgroup测量
Android 自定义View 测量控件宽高、自定义viewgroup测量
142 0