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>

转自:链接
android 教程实例系列的更多相关文章
- Android教程2020 - RecyclerView使用入门
本文介绍RecyclerView的使用入门.这里给出一种比较常见的使用方式. Android教程2020 - 系列总览 本文链接 想必读者朋友对列表的表现形式已经不再陌生.手机上有联系人列表,文件列表 ...
- Android教程2020 - RecyclerView响应点击
本文介绍RecyclerView设置点击的方法.这里给出比较常见的使用方式. Android教程2020 - 系列总览 本文链接 前面我们已经知道如何用RecyclerView显示一列数据. 用户点击 ...
- Android教程2020 - RecyclerView实际使用
示例,用RecyclerView的item做出一个列表. Android教程2020 - 系列总览 本文链接 前面我们已经知道如何用RecyclerView显示一列数据.这里我们做出一个具体的例子.尽 ...
- Android教程2020 - RecyclerView显示多种item
Android教程2020 - 系列总览 本文链接 前面我们已经用RecyclerView显示一些数据.也知道如何获取滑动的距离. 前面我们的列表中显示的都是同类数据.如果要在一个列表中显示不同类别的 ...
- Android教程2020 - RecyclerView获取滑动距离
获取RecyclerView滑动的距离. Android教程2020 - 系列总览 本文链接 前面我们已经用RecyclerView显示一些数据. 本文演示如何获取RecyclerView的滑动距离. ...
- Android图像处理实例教程
Android图像处理实例教程 原始出处 http://vaero.blog.51cto.com/4350852/856750
- android用户界面详尽教程实例
android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...
- android用户界面的教程实例---转自qianqianlianmeng的博客
1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.android用户界面之文本编辑教程实例汇总 ...
- Android控件系列之CheckBox
学习目的: 1.掌握在Android中如何建立CheckBox 2.掌握CheckBox的常用属性 3.掌握CheckBox选中状态变换的事件(监听器) CheckBox简介: CheckBox和Bu ...
随机推荐
- NPOI 导出Excel
NPOIExcel npoiexcel = new NPOIExcel(); string filename = DateTime.Now.ToString("yyyyMMddHHmmssf ...
- A Quick Introduction to Linux Policy Routing
A Quick Introduction to Linux Policy Routing 29 May 2013 In this post, I’m going to introduce you to ...
- centos ab命令安装
yum install apr-util -ymkdir abcd abyum -y install yum-utils -yyumdownloader httpd yum localinstall ...
- 深入理解javascript原型和闭包(11)——执行上下文栈
继续上文的内容. 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境.当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境.处于活动状态的执行 ...
- Activity初接触
Activity中TextView的文字显示Hello Android: 1.直接显示:<TextView android:text="Hello Android" /> ...
- redirect()重新定向·
- Floyed判环/龟兔算法
求[(5+2√6)2^x+1 ] mod p 的值,其中 0 ≤ x < 232 , p 是个质数,p ≤ 46337 .(这里介绍的是一种暴力的做法) (5+2√6)2^n+1 = an + ...
- PHP curl获取页面内容,不直接输出到页面,CURLOPT_RETURNTRANSFER参数设置
使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出.这个时候就必需设置curl的或true. 1.curl获取页面内容, 直接输出例子: <?php $ ...
- Xcode7建立自己的自定义工程和类模板
首先进入系统模板的目录 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library ...
- python function parameter
Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] on linux2 Type "copyright&q ...