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 菜鸟一枚。

原文地址:https://www.cnblogs.com/heyhhz/p/6073471.html