zoukankan      html  css  js  c++  java
  • 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);
    }
    }
  • 相关阅读:
    软考相关试题
    qt中的toUtf8, toLatin1, Local8bit, toUcs4(转)
    qt的中文乱码问题
    《左耳听风》-ARTS-打卡记录-第八周
    杂题
    图论
    基础数据结构
    整除
    同余
    常用数学
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5326982.html
Copyright © 2011-2022 走看看