Button按钮的使用

示例:一个TextView 几个button按钮,当点击不同的button按钮的时候textview中显示出不同的背景颜色跟内容,已经通过按键也更改textview中的背景颜色跟内容。

代码实现如下:

     1):在strings.xml中定义一些表示颜色的属性。代码如下:

             <?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, ButtonSimpleActivity!</string>
    <string name="app_name">Button组件的运用</string>
    <string name="myButtonText1">Red button</string>
    <string name="myButtonText2">Blue button</string>
    <string name="myButtonText3">Yellow button</string>
        
    <drawable name="BLUE">#FF0000FF</drawable>
    <drawable name="BLACK">#FF000000</drawable>
    <drawable name="RED">#FFFF0000</drawable>
    <drawable name="YELLOW">#FFFFFF00</drawable>
    <drawable name="WHITE">#FFFFFFFF</drawable>
</resources>

2);在main.xml中生成相应的UT,代码如下:

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<!-- 定义myTextView控件,设置背景颜色为白色 -->
    <TextView
        android:id="@+id/myTextView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        android:layout_gravity="top"
        android:background="@drawable/WHITE"/>
<!-- 定义myButton1控件,设置布局位置为居中 -->
     <Button
         android:id="@+id/myButton1"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:text="@string/myButtonText1"
         android:layout_gravity="center"
         android:layout_weight="1"
         />
<!-- 定义myButton2控件,设置布局位置为居中 -->
     <Button
         android:id="@+id/myButton2"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:text="@string/myButtonText2"
         android:layout_gravity="center"
         android:layout_weight="2"
         />
<!-- 定义myButton3控件,设置布局位置为居中 -->
     <Button
         android:id="@+id/myButton3"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:text="@string/myButtonText3"
         android:layout_gravity="center"
         android:layout_weight="3"
         />
</LinearLayout>

代码解释:layout_gravity属性用于指定控件的位置,它提供了top、bottom、left、right、center_vertical、fill_vertical等属性;

                                     top:控件位于布局的顶端;

                                   center:控件位于布局的中间;

                                 bottom:控件位于布局的底端;

                                  left:控件位于布局的左端;

                                 right:控件位于布局的右端;

                         layout_weight属性用于设置控件在整个布局的比重,特别注意layout_weight的值需要加引号,否则会编译出错。

3)Activity类,代码如下:

       package com.button.simple;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class ButtonSimpleActivity extends Activity {
    TextView textview;//声明为全局变量
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /*将Button对象声明为常量,因为该对象被另外一个程序(setOnClickListener)引用,不声明
         * 为常量的话编译失败。
         * */
        final Button button1=(Button)findViewById(R.id.myButton1);
        final Button button2=(Button)findViewById(R.id.myButton2);
        final Button button3=(Button)findViewById(R.id.myButton3);
        
        textview=(TextView)findViewById(R.id.myTextView);
        
        /*因为Drawable对象被另外一个方法(setOnClickListener)引用,需要将该对象声明为常量,
         * 否则编译失败。
         * */
        Resources resource = this.getBaseContext().getResources();
        final Drawable red_Drawable=resource.getDrawable(R.drawable.RED);
        final Drawable blue_Drawable=resource.getDrawable(R.drawable.BLUE);
        final Drawable yellow_Drawable=resource.getDrawable(R.drawable.YELLOW);
        //实现button1的单击监听方法
        button1.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                 String str = "你点击了"+button1.getText().toString();
                 //当点击button1时,修改textview中的文本
                 textview.setText(str);
                 //若当前的textview背景颜色不是红色,则修改背景颜色为红色
                 if(textview.getBackground()!=red_Drawable){
                     textview.setBackgroundDrawable(red_Drawable);
                 }
            }
        });
      //实现button2的单击监听方法
        button2.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                 String str = "你点击了"+button2.getText().toString();
                 //当点击button2时,修改textview中的文本
                 textview.setText(str);
                 //若当前的textview背景颜色不是蓝色,则修改背景颜色为红色
                 if(textview.getBackground()!=blue_Drawable){
                     textview.setBackgroundDrawable(blue_Drawable);
                 }
            }
        });
      //实现button3的单击监听方法
        button3.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                 String str = "你点击了"+button3.getText().toString();
                 //当点击button1时,修改textview中的文本
                 textview.setText(str);
                 //若当前的textview背景颜色不是黄色,则修改背景颜色为红色
                 if(textview.getBackground()!=yellow_Drawable){
                     textview.setBackgroundDrawable(yellow_Drawable);
                 }
            }
        });
    }
    //实现onKeyDown接口方法,当用户按键时,该方法被调用
    public boolean onKeyDown(int keyCode,KeyEvent event){
        CharSequence charseq="You have pressed";
        charseq = charseq+"a key!";
        textview.setText(charseq);
        return super.onKeyDown(keyCode, event);
    }
    //实现onKeyUp接口方法,当释放
    public boolean onKeyUp(int keyCode,KeyEvent event){
        CharSequence charseq="Change your color here!";
        textview.setText(charseq);
        textview.setBackgroundColor(Color.WHITE);
        return super.onKeyDown(keyCode, event);
    }
}

效果如下;

   Button按钮的使用_第1张图片

Button按钮的使用_第2张图片

Button按钮的使用_第3张图片

Button按钮的使用_第4张图片


你可能感兴趣的:(Button按钮的使用)