Android开发笔记(四)——Button
Button继承自TextView,是TextView的子类。
在要设计的界面添加Button:
<Button
android:id="@+id/btn_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="button"
/>
其中 match_parent
是匹配父空间, wrap_content
是包含文字内容。
接下来在对应的activity的java代码 MainActivity.java
中声明该Button,
private Button mBtnButton;
添加一个新的activity名称叫 ButtonActivity
,此时 AndroidMainfest.xml
中会自动添加如下声明:
<activity android:name=".ButtonActivity"></activity>
如果没有添加则要自己手动添加,否则会跳转失败。
之后要在 MainActivity.java
中的 onCreate
函数中使用 findViewById
找到该button,接着设置一个点击事件,使其点击之后跳转到新的界面:
mBtnButton=findViewById(R.id.btn_button);
mBtnButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到Button的演示界面
Intent intent=new Intent(MainActivity.this,ButtonActivity.class);
startActivity(intent);
}
});
文字大小、颜色
之前在TextView中的一些属性在这里同样适用:
例子:
<Button
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮1"
android:textSize="30sp"
android:textColor="#000080"
android:background="#D8BFD8"
/>
效果:
自定义背景形状
矩形四周圆角
- 在
drawable
中可以自定义一些xml文件。 - 右键
drawable
——>new
——>Drawable Resource File
,Root element设置为shape,如下图:
- 在
bg_btn2.xml
中的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#9370DB"/>
<corners
android:radius="10dp"/>
</shape>
在 activity_button.xml
中的代码和效果如下:
有描边带圆角
还有很多效果可以自定义。
自定义按压效果
- 右键
drawable
——>new
——>Drawable Resource File
,Root element设置为selector,如下图:
效果展示:
点击事件
调用方法
添加属性:
android:onClick="showToast"
showToast
是自己起的方法的名字,想要实现点击出现提示信息的功能。
在 ButtonAvtivity.java
中添加 showToast
的实现代码:
public void showToast(View view){
Toast.makeText(this,"您没有访问该项目的权限!",Toast.LENGTH_SHORT).show();
}
效果展示:(这里AVD启动太慢了,直接在真机上运行的)
不过通常不会在布局中写 onClick
的属性,一般都采用下面的方法。
使用代码
这里对按钮3来进行测试。
来在对应的activity的java代码 ButtonActivity.java
中声明该Button,
private Button mBtn3;
之后要在 ButtonActivity.java
中的 onCreate
函数中使用 findViewById
找到该button,接着设置一个点击事件,实现点击出现提示信息的功能,具体代码如下:
mBtn3.findViewById(R.id.btn_3);
mBtn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ButtonActivity.this,"没有访问该项目的权限!",Toast.LENGTH_SHORT).show();
}
});
这里不知道为什么在真机和Avd中运行,点击按钮都会闪退。。。
基本上所有的控件都可以设置点击事件,比如说TextView也可,效果如下: