• Android——UI事件的处理机制(基于监听器)


    1.普通内部类(常用)

    xml

    <Button
            android:hint="reset"
            android:layout_columnWeight="1"
            android:id="@+id/reset"/>

    java

    public class MainActivity extends AppCompatActivity {
    
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridexlayout);
     //添加监听器
            //监听器 本身是一个接口,需要写实现类
            Button bt_reset = (Button)findViewById(R.id.reset);
    
            //第一种 设置监听器的实现类的实例
            bt_reset.setOnClickListener(new ResetButtonClickListen());

    }
    //1.用内部类实现监听器的接口 private class ResetButtonClickListen implements View.OnClickListener { public void onClick(View v) { Button bt = (Button)v; String str = bt.getText().toString(); //在内部类里调用外部类的实例:外部类的类名.this Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show(); } } }

    2.匿名内部类

    java

    public class MainActivity extends AppCompatActivity {
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridexlayout);
    
            Button bt_reset = (Button)findViewById(R.id.reset);
    
           //第二种 匿名内部类
            bt_reset.setOnClickListener(new View.OnClickListener(){
    
                public void onClick(View v)
                {
                    Button bt = (Button)v;
                    String str = bt.getText().toString();
    
                    //在内部类里调用外部类的实例:外部类的类名.this
                    Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show();
                }
            });
    }

    3.外部类

    java

    public class MainActivity extends AppCompatActivity {
        //public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        //bt_reset.setOnClickListener(this);
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridexlayout);
         
    
             //添加监听器
            //监听器 本身是一个接口,需要写实现类
            Button bt_reset = (Button)findViewById(R.id.reset);
    
    
    
            //第三种 外部类
            //bt_reset.setOnClickListener(new WaibuListener());
    
        }
    }

    java2

    package com.example.chenshuai.test322;
    
    import android.view.View;
    import android.widget.Button;
    
    /**
     * Created by chenshuai on 2016/3/26.
     */
    public class WaibuListener implements View.OnClickListener {
        public void onClick(View v)
        {
            Button bt = (Button)v;
            String str = bt.getText().toString();
            
        }
    }

    4.直接绑到标签上

    xml

    <Button
            android:hint="send"
            android:layout_columnWeight="1"
            android:onClick="onclick"/>

    java

    public class MainActivity extends AppCompatActivity {
        //public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        //bt_reset.setOnClickListener(this);
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridexlayout);
    
    
            //添加监听器
            //监听器 本身是一个接口,需要写实现类
            Button bt_reset = (Button)findViewById(R.id.reset);
    
    //传递的View参数 是触发这个事件视图实例(在这里是Button)
        public void onclick(View v)
        {
            Button bt = (Button)v;
            String str = bt.getText().toString();
    
            Toast.makeText(this,str+"Button click",Toast.LENGTH_LONG).show();
        }
    }

    5.Avtivity直接实现

    java

        public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        bt_reset.setOnClickListener(this);
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridexlayout);
           
    
    
            //添加监听器
            //监听器 本身是一个接口,需要写实现类
            Button bt_reset = (Button)findViewById(R.id.reset);
    }
    }
  • 相关阅读:
    Http与WWW服务精解
    Http与WWW服务精解
    6-13
    好用的工具说明
    JVM、JRE和JDK三者间的区别和联系
    css进阶之二:flex弹性布局
    MVVM
    如何理解TCP的三次握手协议?
    java里面的设计模式
    linux常用命令
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5326982.html
Copyright © 2020-2023  润新知