zoukankan      html  css  js  c++  java
  • android_Activity之Button_OnClickListener

    今天我们要讲的主要是四大组件之一Activity

    什么是Android 的四大组件呢?接下来简单了解下。

      1.Activity

         Activity就是我们应用程序的界面,主要用来跟我们的用户进行交互的,比如一个文本框,按钮这些就是显示在Activity上的,并且可以接收数据,传递数据到后台,

        然后再显示出来。

      2.service 

        Service我们是看不见的,对于绝大部分的数据的处理,业务的处理都是通过Service来完成的。

      3.Broadcast Receiver 

        BroadcastReceiver组件是广播接收器,主要是用来监听系统的各个行为的,例如当电量不足的时候会给我们发送一条广播信息。

      4.Content Provider

        ContentProvider类似于我们的档案馆,里面存放了我们的各种数据,例如通讯录中的信息等,这个组件就是运行程序对其进行访问,然后得到里面的数据。

    Activity 在英文中是活动的意思。活动就是我们与用户进行交互的一个场所。

    activity 整个的活动流程是什么呢?我们用一个图来看下

    当然今天主要讲的还是 activity 页面中 Button 按钮的一个点击事件。在 java 中 点击事件弹出消息直接在 js 中 写 alter 即可。但是在 Android 中没那么简单。当然也不是很复杂。昨天我们学习了 java 的内部类。在 Android 点击事件中,我们主要使用的是 匿名内部类( anonymous inner class)

    我们直接上栗子好描述些。

    当然,完成上面步骤的时候,你运行整个项目时,你怎么点击button 都是没有效果的。因为我们没有写点击事件。

    接下来我们要用两种方法写Android 中的点击事件。

    方法一:

    直接在MainActivity 中写匿名内部类实现点击事件,但通常不建议使用,代码的健壮性不高。

    package com.example.helloworld;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    
    public class MainActivity extends Activity {
    
        private Button btn1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           // setContentView(R.layout.activity_main);
           this.setContentView(R.layout.test);
           btn1  = (Button) findViewById(R.id.testbut1); 
           btn1.setText("点我啊");   
           
           //不用定义实现类的,用匿名内部类实现 OnClickListener 接口
          //方法一: anonymous inner class
           btn1.setOnClickListener(new OnClickListener() {
            
                // context 指的是 activity
                // text 要弹出的内容
                // duration 时间
            @Override
            public void onClick(View v) {
                Toast t = Toast.makeText(
                        MainActivity.this,
                        "我是Android 1 班",
                        Toast.LENGTH_LONG);
                t.show();
            }
        });        
        }
     
    }

    运行结果如下,当点击按钮的时候,弹出“我是Android 1班”

    方法二:

    创建一个实现类,去实现点击事件

    package com.example.helloworld;
    
    import android.content.Context;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Toast;
    
    public class Btn1ClickListener implements OnClickListener {
        private Context context;
        
        public Btn1ClickListener(Context c) {
            this.context = c;
        }
        
        
        @Override
        public void onClick(View v) {
            Toast t = Toast.makeText(
                    context,
                    "我是Android 1 班huanghuizhen",
                    Toast.LENGTH_LONG);
            t.show();
            
        }
        
    }
    package com.example.helloworld;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    
    public class MainActivity extends Activity {
    
        private Button btn1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           // setContentView(R.layout.activity_main);
           this.setContentView(R.layout.test);
           btn1  = (Button) findViewById(R.id.testbut1); 
           btn1.setText("点我啊");
           btn1.setOnClickListener( new Btn1ClickListener(this) );
           
        } 
    }

    运行结果如下

    以上是今天的全部内容。若有哪里错误,欢迎各位指出,我也是Android 菜鸟一枚。

  • 相关阅读:
    js图片加载效果(延迟加载+瀑布流加载)
    iOS仿支付宝芝麻信用仪表盘效果
    Spark GraphX 的数据可视化
    [Animations] 快速上手 iOS10 属性动画
    iOS蓝牙BLE4.0通信功能
    微信小程序项目实战之天气预报
    Android利用温度传感器实现带动画效果的电子温度计
    Eclipse集成ijkplayer并实现本地和网络视频播放等
    Android HandlerThread详解
    AsyncTask 异步任务基本使用-下载视频
  • 原文地址:https://www.cnblogs.com/heyhhz/p/6073471.html
Copyright © 2011-2022 走看看