Android学习之六种事件响应方法汇总
java源码如下:
1、MainActivity.java源码
package com.example.responsetest;
import android.app.Activity;
import android.content.Intent;
import android.content.Loader.ForceLoadContentObserver;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView; //方法六:通用场景,特别是某个控件的点击方法需要实现的逻辑较为复杂的时候
public class MainActivity extends Activity{
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview=(TextView)findViewById(R.id.textview);//1.初始化值
}
public void onTextViewClick(View view) { //2.传入形参
//跳转页面
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent); //textview.setTextColor(Color.GREEN);//点击变色
}
} /*
//方法五:适用于不同类型的控件,使需要实现的功能在一个onClick()方法中实现
public class MainActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1=(Button)findViewById(R.id.button1);
Button button2=(Button)findViewById(R.id.button2);
ImageButton button3=(ImageButton)findViewById(R.id.imagebutton);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
} @Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.button1:
case R.id.button2:
case R.id.imagebutton:
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
break;
default:
break;
}
}
}
*/ /*
//方法四:与方法三差别不大:
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1=(Button)findViewById(R.id.button1);
Button button2=(Button)findViewById(R.id.button2);
button1.setOnClickListener(new MyOnClick());
button2.setOnClickListener(new MyOnClick());
}
private class MyOnClick implements OnClickListener{
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.button1:
case R.id.button2:
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
break;
default:
break;
}
}
}
}
*/
/*
//方法三:适用于多个同类型的控件(比如Button)等
public class MainActivity extends Activity{
Button[] buttons;//定义一个Button数组,封装多个同类型的Button控件(成员变量有默认的初始值)
//初始化函数
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttons=new Button[]{(Button)findViewById(R.id.button1),(Button)findViewById(R.id.button2)};
for(Button button:buttons) {
button.setOnClickListener(listener);
}}
//成员变量:
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.button1:
case R.id.button2:
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
break;
default:
break;
}}};
}
*/ /* public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button2);
button.setOnClickListener(new MyOnclickListener());
}
//事件响应方法二:定义内部类实现监听接口
public class MyOnclickListener implements OnClickListener{
@Override
public void onClick(View arg0) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
}
} */
/*
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //事件响应方法一:使用匿名内部类,适用于任何场景
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});;
}
}
*/
2、SecondActivity.java源码
package com.example.responsetest; import android.app.Activity;
import android.os.Bundle; public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}
xml代码如下:
1、activity_main.xml代码(第一界面):
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/main_activity"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:orientation="vertical"
7 android:paddingBottom="@dimen/activity_vertical_margin"
8 android:paddingLeft="@dimen/activity_horizontal_margin"
9 android:paddingRight="@dimen/activity_horizontal_margin"
10 android:paddingTop="@dimen/activity_vertical_margin"
11 tools:context="com.example.responsetest.MainActivity" >
12
13 <Button
14 android:id="@+id/button1"
15 android:layout_width="match_parent"
16 android:layout_height="wrap_content"
17 android:text="匿名内部类" />
18
19 <Button
20 android:id="@+id/button2"
21 android:layout_width="match_parent"
22 android:layout_height="wrap_content"
23 android:text="内部类"/>
24 <ImageButton
25 android:id="@+id/imagebutton"
26 android:layout_width="100dip"
27 android:layout_height="100dip"
28 android:scaleType="fitCenter"
29 android:src="@drawable/ic_launcher"
30 />
31 <TextView
32 android:id="@+id/textview"
33 android:layout_width="match_parent"
34 android:layout_height="wrap_content"
35 android:onClick="onTextViewClick"
36 android:text="点击事件"
37 android:textSize="50sp"
38 />
39
40 </LinearLayout>
2、activity_second.xml源码(第二界面):
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:paddingBottom="@dimen/activity_vertical_margin"
6 android:paddingLeft="@dimen/activity_horizontal_margin"
7 android:paddingRight="@dimen/activity_horizontal_margin"
8 android:paddingTop="@dimen/activity_vertical_margin"
9 tools:context="com.example.responsetest.MainActivity" >
10
11 <TextView
12 android:id="@+id/secondactivity"
13 android:layout_width="match_parent"
14 android:layout_height="wrap_content"
15 android:text="欢迎您" />
16
17 </LinearLayout>
3、AndroidManifest.xml源码:
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.example.responsetest"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="18"
9 android:targetSdkVersion="22" />
10
11 <application
12 android:allowBackup="true"
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name"
15 android:theme="@style/AppTheme" >
16 <activity
17 android:name=".MainActivity"
18 android:label="@string/app_name" >
19 <intent-filter>
20 <action android:name="android.intent.action.MAIN" />
21
22 <category android:name="android.intent.category.LAUNCHER" />
23 </intent-filter>
24 </activity>
25 <activity
26 android:name="com.example.responsetest.SecondActivity"
27 android:excludeFromRecents="true"
28 android:noHistory="true"/>
29 </application>
30
31 </manifest>
代码分析:
1.两个java类:
MainActivity.java :主类,代码的主要执行者,操作第一界面
SecondActivity.java:跳转后的页面,操作第二界面
2.三个xml文件:
activity_main.xml:布局第一个手机界面
activity_second.xml:布局第二个界面(跳转后的界面)
AndroidManifest.xml:Android代码的执行入口
Android学习之六种事件响应方法汇总的更多相关文章
- java事件响应方法汇总(容器类监听、监听器类、AbstractAction、反射)
Java图形用户界面中,处理事件时所必须的步骤是: 1.创建接受响应的组件(控件)2.实现相关事件监听接口3.注册事件源的动作监听器4.事件触发时的事件处理 相应的可以通过以下的集中方式来作出事件响应 ...
- android view、viewgroup 事件响应拦截处理机制
文章中会用到部分网络资源,首先将原作者的链接附上. 但是还是会附上数量较大的关于此部分内容的自己的思考. ----------------------------------------------- ...
- Android开发之常见事件响应方式
常见的事件有 (1)单击事件 onClickListener (2)长按事件 onLongClickListener (3)滑动事件 onTouchListener (4)键盘事件 onKeyLi ...
- Android学习之触点事件的处理
知识点: 1. Android开发中的运动事件:触摸屏(TouchScreen)和滚动球(TrackBall) 2.对运动事件的处理:MotionEvent 3.触摸时必发的三个MotionEvent ...
- C#中Form的Paint事件响应方法与重载虚方法OnPaint()的区别
Form_Paint()方法是Paint事件的响应方法,OnPaint是可重载的虚方法,OnPaint方法是调用Paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的: protec ...
- Android开发之Button事件实现方法的总结
下面介绍Button事件实现的两种方法 main.xml <?xml version="1.0" encoding="utf-8"?> <Li ...
- Android学习笔记触摸事件
案例代码: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Relativ ...
- Android学习笔记--JNI的使用方法
1.JNI是什么 JNI是Java Native Interface的缩写,它提供若干的API实现Java与其他语言之间的通信.而Android Framework由基于Java语言的的Java层与基 ...
- Android学习之键盘事件
java代码: package com.example.keyboardtest; import android.app.Activity; import android.os.Bundle; imp ...
随机推荐
- c++中的this指针和c#中的this引用
先总结一下: 在c++中this为指针,使用"->"操作符来获取当前实例中的成员 在c#中this为引用,使用"."操作符来获取当前实例中的成员 下面内容 ...
- Tarjan中栈的分析与SLT栈的实现
首先看一下手写的栈: do{ printf("%d ",stack[index]); visit[stack[index]]=; index--; }]);//出栈,并且输出. p ...
- 【代码笔记】Web-ionic-按钮
一,效果图. 二,代码.index.html文件如下所示. <!DOCTYPE html> <html> <head> <meta charset=" ...
- Javascript异步编程之三Promise: 像堆积木一样组织你的异步流程
这篇有点长,不过干货挺多,既分析promise的原理,也包含一些最佳实践,亮点在最后:) 还记得上一节讲回调函数的时候,第一件事就提到了异步函数不能用return返回值,其原因就是在return语句执 ...
- win7x64上配置 vs2015
win7 x64配置vs2015成功关键 1. 首先查看win7版本是否是sp1或以上: [计算机]----->[属性] 2. 将IE浏览器升级到IE11: IE11[百度网盘下载],提取码:[ ...
- 免费工资总额管控系统-JXHR2016
•工资总额是指按照国家统计局规定的统计口径或企业规定,在一定时期内支付给各类用工的劳动报酬总额 •工资总额,即基本工资,包括岗位工资.各项津补贴 •JXHR2016以薪酬管控为核心,结合人力资源规划. ...
- system.transfer.list深度解析
system.transfer.list system.new.dat 很明显,通过名字我们就知道这两个文件的作用,system.new.dat为数据部分,system.transfer.list为 ...
- SpringCloud+Feign环境下文件上传与form-data同时存在的解决办法(2)
书接上文. 上文中描述了如何在 SpringCloud+Feign环境下上传文件与form-data同时存在的解决办法,实践证明基本可行,但却会引入其他问题. 主要导致的后果是: 1. 无法与普通Fe ...
- WebSocket实现简单的在线聊天
SuperWebSocket在WebService中的应用 最开始使用是寄托在IIS中,发布之后测试时半个小时就会断开,所以改为WindowsService 1. 新建Windows服务项目[Test ...
- LInux下(centos7.2)更新 python3.7
进入超级管理员目录 su root 下载 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 找到下载的文件解压 tar - ...