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 菜鸟一枚。
android_Activity之Button_OnClickListener的更多相关文章
- Android_Activity生命周期
通过前面一段时间的学习,我们很清楚我们的一系列操作都离不开的一个东西,就是我们的activity .接下来我们对 Activity 进行系统的总结. Activity 的四种基本状态 1.运行态(Ru ...
- android_Activity生命周期功能
说明:初步activity 生命周期7功能. 样本:于MainActivity我加了button,搬家button.跳到OtherActivity.控制台输出的观察. 让我们来看看这些功能: 他们的流 ...
- Android_Activity启动模式
在android里,有4种activity的启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance” 它们主要有如下不同: ...
- Android_Activity知识点
一:安卓的目录下面有两个文件夹,一个是assets一个是RES其中在resw文件夹放的所有东西都会在R文件夹中自动对应的生成了一个ID,那么在assets中我们可以放关于这个工程的任何文件. 二:dr ...
- Android_activity实现一个简单的新建联系表
项目展示: 第一个Activity用于显示联系人信息 第二个Activity输入联系人信息 要求: 运行“新建联系人”程序,结果如下图所示: 点击“新建联系人”按钮,打开输入信息界面并输入姓名.公司. ...
- Android_Activity的生命周期、跳转方式及参数传递、启动模式。
Activity的生命周期: onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy Activity之间的跳转分为显式跳转和隐式跳转 ...
- Android 组件系列-----Activity的传值和回传值
在这篇随笔里将讲解Activity的传值和回传值. 一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity, ...
- 【Android】首次进入应用时加载引导界面
参考文章: [1]http://blog.csdn.net/wsscy2004/article/details/7611529 [2]http://www.androidlearner.net/and ...
- 设计webapp的新思路
一般设计移动应用有3中方式:原生.脚本.混合:今天我们用另一种方式实现. 我叫它:响应式网页webApp 一.具体构架思路是这样的: 客户端:Android手机 Android手机中有控件WebVie ...
随机推荐
- 第一篇T语言实例开发(版本5.3),带错误检测的加减乘除运算器
带错误检测的加减乘除运算器 表达式 TC综合开发工具里的表达式大体分为:计算表达式.条件表达式 计算表达式: 它一般是用在赋值过程中,或者是和条件表达式混合使用这样的表达式里只有数字运算符(如:+.- ...
- linux C 获取当前目录的实现(转-Blossom)
linux C 获取当前目录的实现: //获取当前目录#include <stdlib.h>#include <stdio.h>#include <string.h> ...
- JavaScript 使用词法作用域,没有动态作用域
function foo() { console.log( a ); } function bar() { var a = 3; foo(); } var a = 2; bar(); 上面的代码,控制 ...
- [hdu 4307]Matrix
真是一道很好的题目喵~ 一看题面真是无语了……很直接.很暴力.很恶心.说实话,除了 straight forward 我脑子里就没想过别的 上网看了一下居然是最小割,脑子里面一下子就清醒了,N< ...
- (转)Markov Chain Monte Carlo
Nice R Code Punning code better since 2013 RSS Blog Archives Guides Modules About Markov Chain Monte ...
- Unity3d 引擎原理详细介绍
体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...
- world machine, 输出lightmap
一,输出黑白lightmap: 二,输出彩色lightmap: 需要注意的是:当输出黑白lightmap时,输出设备要用Height Output:当输出彩色lightmap时,输出设备要用Bitma ...
- 并查集——HDOJ-1232-畅通工程
并查集 并查集(Union-Find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题,在合并之前,需要先判断两个元素是否属于同一集合,这就需要用查找操作来实现.一些常 ...
- 服务发现之 Etcd VS Consul
抄自这里 *********************************************************************************************** ...
- -include和sinclude 作用
-include和sinclude 如果有文件没有找到的话,make会生成一条警告信息,但不会马上出现致命错误.它 会继续载入其它的文件,一旦完成makefile的读取,make会再重试这些没有找 ...