android:id="@+id/button1"
android:background="@drawable/button_state"
android:padding="15px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是可用按钮"
/>
android:id="@+id/button2"
android:layout_width="wrap_content"
android:background="@drawable/red"
android:layout_marginTop="5px"
android:padding="15px"
android:layout_height="wrap_content"
android:text="单击我可以让上面的按钮变为可用" />
(4)打开MainActivity,在onCreate()方法中,首先获取第一个按钮,并为其添加单击事件监听器,在重写的onClick()方法中,将该按钮设置为不可用,并改变按钮上的文字,然后获取第二个按钮,并为其添加单击事件监听器,在重写的onClick()方法中,将第一个按钮设置为可用,并改变按钮上显示的文字。关键代码如下:
final Button button1 = (Button) findViewById(R.id.button1); //获取布局文件中添加的button1
//为按钮添加单击事件监听器
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Button b = (Button) v; //获取当前按钮
b.setEnabled(false); //让按钮变为不可用
b.setText("我是不可用按钮"); //改变按钮上显示的文字
Toast.makeText(MainActivity.this, "按钮变为不可用", Toast.LENGTH_SHORT)
.show(); //显示消息提示框
}
});
Button button2 = (Button) findViewById(R.id.button2); //获取布局文件中添加的button2
//为按钮添加单击事件监听器
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
button1.setEnabled(true); //让button1变为可用
button1.setText("我是可用按钮"); //改变按钮上显示的文字
}
});
运行本实例,将显示如图8.10所示的运行结果。单击“我是可用按钮”按钮,该按钮将变为不可用按钮,如图8.11所示。当第一个按钮变为不可用按钮后,单击“单击我可以让上面的按钮变为可用”按钮,可以让已经变为不可用的按钮再次变为可用按钮。
图8.10 显示可用按钮 图8.11 显示不可用按钮
8.7 样式(style)和主题(theme)资源
教学录像:光盘\TM\lx\8\样式(style)和主题(theme)资源.exe
在Android中,提供了用于对Android应用进行美化的样式和主题资源,使用这些资源可以开发出各种风格的Android应用。下面对Android中提供的样式资源和主题资源进行详细介绍。
8.7.1 样式资源
样式资源主要用于对组件的显示样式进行控制,如改变文本框显示文字的大小和颜色等。样式资源文件放置在res\values目录中,其根元素是
在Android中,还支持继承样式的功能,只需要在标记中使用parent属性进行设置即可。例如,定义一个名称为basic的样式,然后定义一个名称为title的样式,并让该样式继承basic样式,关键代码如下:
说明: 当一个样式继承另一个样式后,如果在该子样式中,出现了与父样式相同的属性,将使用子样式中定义的属性值。
在样式资源文件中定义样式资源后,就可以在XML文件中使用该样式资源了,其基本语法格式如下:
@[
例如,在定义TextView组件时,使用名称为title的样式资源为其定义样式,可以使用下面的代码:
android:id="@+id/textView1"
style="@style/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />
8.7.2 主题资源
主题资源与样式资源类似,定义主题资源的资源文件也是保存在res\values目录中,其根元素同样是