zoukankan      html  css  js  c++  java
  • 基于监听的事件处理——直接绑定到标签

          Android还有一种更简洁的绑定事件监听器的方式,直接在界面布局文件中为指定标签绑定事件处理方法。

          对于很多Android界面组件标签而言,它们都支持onClick属性的属性值就是一个形如xxx(View source)的方法的方法名。

         例如下面界面界面布局文件:

          

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        >
    
        <EditText
            android:id="@+id/show"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:editable="false"
           >
        </EditText>
    
        <Button
            android:id="@+id/bn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="clickHandler"
            android:text="点击我" />
    
    </LinearLayout>

      上面的程序中粗体字代码用于在界面布局文件中为Button按钮绑定一个事件处理方法:clickHandler,这就意味着开发者需要在该界面布局对应的Activity中定义一个void clickHandler(View source)方法,该方法将会负责处理该按钮上的单击事件。下面是该界面布局文件的Java代码。

      

    package com.example.studyevent;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.widget.EditText;
    
    public class BindingTag extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_binding_tag);
        }
        //定义一个事件处理方法
        //其中source参数代表事件源
        public void clickHandler(View source)
        {
            EditText show=(EditText)findViewById(R.id.show);
            show.setText("bn按钮被点击了");
            
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.binding_tag, menu);
            return true;
        }
    
    }

         上面的粗体字代码定义了一个clickHandler(View source)方法,当程序中的bn按钮被单击时,该方法将会被激发并处理bn按钮上的单击事件。

         运行上面的程序将会看到如下效果:

  • 相关阅读:
    Demo:刮刮卡橡皮擦效果
    养成良好的代码编写习惯
    我的百科
    专业英语词汇
    加载资源的类
    循环滚动翻页+居中项缩放
    学习笔记—Node中模块化规范
    学习笔记—Node中的EventLoop
    学习笔记—Node的全局对象
    学习笔记—Node的基本概念
  • 原文地址:https://www.cnblogs.com/wolipengbo/p/3407454.html
Copyright © 2011-2022 走看看