android开发------响应用户事件
今天的内容有点简单,不难,就是为按钮添加onClick事件。
新知识点:
Intent类的简单使用
startActivity方法
一般事件都由按钮触发,现在我们要实现的是当用户点击按钮的时候,启动一个新的Activity
首先建立一个简单的线性布局,代码如下:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"> <Button
android:id="@+id/btnStart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click me"
android:onClick="onClickStartActivity"/>
</LinearLayout>
布局中我们只添加了一个按钮,当点击这个按钮,一个新的Activity就会启动。
这次我们在按钮中添加了一个新的属性:
android:onClick="onClickStartActivity"
很明显,这个属性就是指定一个当用户点击的时候程序执行的事件。
双引号中是我们将来要在Activity中添加的函数。
接下来创建一个新的Activity,我们依然采用的是手动创建的方式,这个就是以后被onClick事件启动的Activity
先建立一个继承自Activity的类,名称随意,能清晰表达就行
package com.aidevelops.onclickevent; import android.app.Activity;
import android.os.Bundle; public class TargetActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.targetactivity);
}
}
为这个Activity编写一个界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:text="Started by the main activity"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"/>
</LinearLayout>
记得在AndroidManifest中注册这个Activity,在application标签中添加下面的代码:
<activity
android:name=".TargetActivity"
android:label="The target activity">
<intent-filter >
<action android:name="com.aidevelops.onclickevent.TargetActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
前面我们说过AndroidManifest文件中Activity必须包含两个标签,缺一不可:
这里action中的值我们使用了自定义的类:TartgetActivity,为了确保唯一性,我们在类前面添加了包名
而category的值是android.intent.category.DEFAULT,因为我们不需要让它出现在应用程序列表中,
我们现在只需要记住:
startActivity()要找到一个Activity进行启动,那么这个Activity必须至少包含一个category值,这个category值使用android.intent.category.DEFAULT就可以了。
准备工作都做好了,接下来就要编写onClickStartActivity函数实质代码
package com.aidevelops.onclickevent; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void onClickStartActivity(View view)
{
Intent intent = new Intent("com.aidevelops.onclickevent.TargetActivity");
startActivity(intent);
} }
在MainActivity中我们新添加了一个函数onClickStartActivity,关于这个函数,我们要注意几点:
1,函数名称必须要和布局文件中android:onClick属性定义的名称一致,否则点击按钮的时候程序就会崩溃。
2,函数必须是公共的
3,函数必须没有返回值
4,函数必须接收一个View类型的参数
先来说说Intent的作用
Intent翻译成中文,就是意图的意思,也就是说,我们想要做什么,就告诉这个Intent.
现在我们将字符串值"com.aidevelops.onclickevent.TargetActivity"传给Intent,就是告诉它我们要启动这个Activity,你要帮我找到它。
然后使用startActivity(intent)启动这个Activity。
使用Eclipse的朋友,只需要按快捷键atrl+shift+O就可以自动导入需要的类,方便快捷。
写到这里,全部的工作就告一段落,将这个程序部署到虚拟机测试就可以了。你会发现,当你点击按钮,TargetActivity就会被启动。
真的,就这么简单。图就不截了。
android开发------响应用户事件的更多相关文章
- Android开发系列之事件拦截机制
对于Android开发者来说理解事件传递机制的重要性,我想应该是不言而喻的.在一个Activity里面,我们经常会重写onTouchEvent事件,可是重写结束之后,对于是返回true还是返回fals ...
- Android开发之常见事件响应方式
常见的事件有 (1)单击事件 onClickListener (2)长按事件 onLongClickListener (3)滑动事件 onTouchListener (4)键盘事件 onKeyLi ...
- Android开发学习之事件处理和Button具体解释
Android的事件处理机制: 1.基于监听器的事件处理 --- 组件绑定特定的事件监听器 --- 重点 2.基于回调的事件处理 --- 主要做法是重写Android组件特定的回调函数, ...
- android开发检测用户是否使用了虚拟定位
在应用开发中,如果有签到打卡之类的功能,你是否会遇到检测用户是否使用了虚拟定位软件来进行打卡?如果有,那么请仔细阅读这篇文章.该文章会带你认识什么是虚拟定位.什么是应用分身,以及如何通过代码来检测用户 ...
- 5.21学习总结——android开发实现用户头像的上传
最近在做个人头像的上传,具体是能调用摄像头和从相册进行选择.本篇文章参考的我的同学的博客,大家有兴趣可以去原作者那里去看看: Hi(.・∀・)ノ (cnblogs.com) 1.使用glide进行图片 ...
- .Net程序员玩转Android开发--ListView单击事件
public class ListViewClickActivity extends Activity { private ListView lv; SimpleAdap ...
- UIView用户事件响应
UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相关的属性和方法. 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为 ...
- iOS学习笔记(2)— UIView用户事件响应
UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相关的属性和方法. 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为 ...
- Android开发牛刀小试之“AA算钱软件”开发(一)
事实上想去做android开发已经有非常长一段时间了,可是因为还在上课,加上老板那边的项目接连不断.也一直都没有机会抽出身来做.可是,楼主当然也不会闲着,首先我了解到android开发须要java学习 ...
随机推荐
- AngularJS服务
在使用AngularJS的路由管理和控制视图加载的时候,当新的视图加载进来,原有视图的控制器会被销毁,这是出于内存占用和性能的考虑.服务提供了一种能在应用的整个生命周期内保持和共享数据的方法,它能够在 ...
- JMS学习(六)-ActiveMQ的高可用性实现
原文地址:http://www.cnblogs.com/hapjin/p/5663024.html 一,ActiveMQ高可用性的架构 ActiveMQ的高可用性架构是基于Master/Slave 模 ...
- ural Cipher Message
Cipher Message Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Desc ...
- 虚拟机VMware怎么完全卸载干净
虚拟机VMware怎么完全卸载干净 听语音 | 浏览:19929 | 更新:2014-12-21 10:28 | 标签:虚拟机 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅高质屏和好师傅 ...
- MySQL sql语言的笔记
3 MySQL数据库 3.1 mysql数据存储结构 先数据库,再表,再有数据 4 数据库管理 4.1 查询所有数据库 mysql> show databases; +------------- ...
- splay总结
以此文纪念人生首次竞赛大选 这里主要讲一讲splay的区间操作,我讲的是指针实现,程序的效率可能比较低,更偏重代码的可读可写性,语言风格不是很优美有效,不喜勿喷 零.初始化结构体 1)这里主要是初始化 ...
- Zygote进程【2】——Zygote的分裂
在Zygote的诞生一文中init进程是如何一步步创建Zygote进程的,也了解了Zygote的进程的作用.Zygote进程的诞生对于整个Java世界可以说有着"开天辟地"的作用, ...
- swift三方库
链接: Swift 有哪些优秀的第三方库? Swift 中AFNetworking 的替代方案 Alamofire Swift2.0后Alamofire的使用方法 [快速学会Swift第三方库] Al ...
- jQuery获取文本节点之 text()/val()/html() 方法区别
1. 无参html():取得第一个匹配元素的html内容.这个函数不能用于XML文档.但可以用于XHTML文档,返回的是一个String 例子: html页面代码:<div><p&g ...
- Notes: sensitivity & specificity
terminology: True positive (TP); False positive (FP): originally negative; True negative (TN); False ...