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 按钮 #### 使用 HTML 定义按钮 可以直接在 HTML 文件中定义 `<button>` 标签来创建按钮。`<button>` 元素用于表示可点击的按钮,可以包含文本或其他 HTML 内容。 ```html <button type="button">Click Me!</button> ``` 属性 `type="button"` 明确指定了这是一个普通按钮而非提交或重置按钮[^2]。 #### 动态创建按钮 除了静态定义外,还可以通过 JavaScript 动态创建按钮: ```javascript var button = document.createElement('button'); // 创建一个新的按钮元素 var buttonText = document.createTextNode('Submit'); // 创建按钮上要显示的文字节点 button.appendChild(buttonText); // 将文字添加到按钮内 document.body.appendChild(button); // 把新创建的按钮追加到页面主体中 ``` 这段代码展示了如何利用 DOM 方法构建一个完整的按钮实例,并将其加入文档流中[^1]。 #### 添加交互功能 为了使按钮具备响应能力,通常会给它绑定事件处理器。最常用的是 `onclick` 属性,当用户单击按钮时触发相应的操作。 ```html <button onclick="alert('Button clicked!')">Alert on Click</button> ``` 对于更复杂的逻辑处理,则建议采用独立函数的方式管理回调行为: ```javascript function handleClick() { alert('The button was clicked!'); } // 给之前动态创建的那个按钮设置 click 事件监听器 button.addEventListener('click', handleClick); ``` 这种方式不仅提高了代码的可读性和维护性,还遵循了最佳实践原则[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值