Button基础
用户界面部分学起来还真是无处下手哇,总不能一个控件发一篇文吧,略有点费时间啊。。。这个难道不是边用边学才给力吗。。所以我打算从最实用的Button开始下手。
先贴几个链接,好东西:
android用户界面的详尽教程实例系列:
android用户界面教程实例汇总:
本文主要内容是Button,相关的链接:
一个强大的学习贴:
官方文档资料:
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 voidyourMethodName(View view)
{//Do something in response to button click
}
需要注意的是这个方法必须符合三个条件:
1.public
2.返回void
3.只有一个参数View,这个View就是被点击的这个控件。
2.使用setOnClickListener添加监听器对象
关于事件监听模式,参见
可以写一个内部类,实现OnClickListener接口,在这个类中实现onClick方法,方法里面写在按钮点击时想做的具体工作。
将这个内部类的对象传入按钮的setOnClickListener方法中,即完成监听器对象和按钮的绑定(在事件源Button上注册了事件监听器),这时候只要按钮被点击,那么监听器对象的onClick方法就会被调用。
当然这里也不一定要自己写一个内部类出来,比如这个例子:
Button button =(Button) findViewById(R.id.button_send);
button.setOnClickListener(newView.OnClickListener() {public voidonClick(View v)
{//Do something in response to button click
}
});
按钮基本操作实例
奉上实例一个:
XML布局文件
XML布局文件
>
>
Activity代码
Activity代码
packagecom.example.buttontest;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;public class ButtonActivity extendsActivity
{private Button button01 = null;private Button button02 = null;
@Overridepublic voidonCreate(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(newMyButtonListener());
}
@Overridepublic booleanonCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_button, menu);return true;
}//按钮1的点击事件
public voidchangeButtonColor(View view)
{
button01.setBackgroundColor(getResources().getColor(R.color.red));
}//内部类,实现OnClickListener接口//作为第二个按钮的监听器类
class MyButtonListener implementsOnClickListener
{public voidonClick(View v)
{
button02.setBackgroundColor(getResources().getColor(R.color.blue));
}
}
}
运行截图
点击前:
点击后:
相关的资源文件中内容
strings.xml
strings.xml
ButtonTest
Hello world!
Settings
ButtonActivity
ThisIsAButton
ThisIsAnotherButton
colors.xml
colors.xml
#f00
#0f0
#00f
#000