Android开发学习之事件处理和Button具体解释
Android的事件处理机制:
1.基于监听器的事件处理 --- 组件绑定特定的事件监听器 --- 重点
2.基于回调的事件处理 --- 主要做法是重写Android组件特定的回调函数,
Android大部分界面组件都提供了事件响应的回调函数。我们仅仅要重写它们即可
监听器模型:
(1)事件源Event Source:产生事件的来源,一般是各种组件,如button。窗体等。
(2)事件Event:事件封装了界面组件上发生的特定事件的详细信息,假设监听器须要获取界面组件上所发生事件的相关信息。一般通过事件Event对象来传递。
(3)事件监听器Event Listener:负责监听事件源发生的事件,并对不同的事件做对应的处理。
基于监听器的事件处理:
1.内部类作为监听器
2.匿名内部类作为事件监听器类
3.XML布局文件里指定处理方法
1. btnLogin=(Button)super.findViewById(R.id.login);
//为button注冊监听事件
btnLogin.setOnClickListener(new LoginOnClickListener());
}
//事件监听器
private class LoginOnClickListener implements OnClickListener{
public void onClick(View v){
String username=tvUserName.getText().toString();
String password=tvPassword.getText().toString();
String info="用户名:"+username+"☆☆☆密码:"+password;
Toast.makeText(getApplicationContext(), info,Toast.LENGTH_SHORT).show();
}
}
2. btnLogin=(Button)super.findViewById(R.id.login);
btnLogin.setOnClickListener(new OnClickListener(){
public void onClick(View v){
String username=tvUserName.getText().toString();
String password=tvPassword.getText().toString();
String info="用户名:"+username+"☆☆☆密码:"+password;
Toast.makeText(getApplicationContext(), info,Toast.LENGTH_SHORT).show();
}
});
Button事件处理方法:
1.
myButton1=(Button)findViewById(R.id.myButton1);
myButton2=(Button)findViewById(R.id.myButton2);
//使用匿名类注冊Button事件
myButton1.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(ButtonDemoActivity.this, "你点击了button1",Toast.LENGTH_LONG).show();
}
});
myButton2.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(ButtonDemoActivity.this, "你点击了button2",Toast.LENGTH_LONG).show();
}
});
2.
myButton1.setOnClickListener(new ButtonClick());
myButton2.setOnClickListener(new ButtonClick());
//创建一个类。来响应OnClickListener
class ButtonClick implements OnClickListener
{
public void onClick(View v)
{
switch (v.getId()) {
case R.id.myButton1:
Toast.makeText(ButtonDemoActivity.this, "你点击了button1",Toast.LENGTH_LONG).show();
break;
case R.id.myButton2:
Toast.makeText(ButtonDemoActivity.this, "你点击了button2",Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
}
3.
XML中定义处理方法:
<Button
android:onClick="clickIt">
public void clickIt(View view){
//处理button点击事件的方法
}
定义圆角的Button
1.res->drawable-mdpi -> shape.xml
shape.xml --- button样式定制文件XML
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--定义填充颜色-->
<solid android:color="#FFFFFF"/>
<!--设置button的四个角为弧形-->
<!--android:radius 弧形半径-->
<corners android:radius="5dip">
<!--padding:button 里边的文字与Button边界的间距-->
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/>
</shape>
mainLayout.xml ---- 布局文件
在通过android:background="@drawable/shape"中使用shape.xml资源
<Button
android:id="@+id/button1"
android:text="圆角button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape"/>
Android开发学习之事件处理和Button具体解释的更多相关文章
- android开发学习笔记:圆角的Button
转自:http://www.cnblogs.com/gzggyy/archive/2013/05/17/3083218.html 在res目录下的drawable-mdpi建立xml文件shape.x ...
- Android开发学习之路--网络编程之xml、json
一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载 ...
- Android开发学习之LauncherActivity开发启动的列表
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ...
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
- Android开发学习之路--Activity之初体验
环境也搭建好了,android系统也基本了解了,那么接下来就可以开始学习android开发了,相信这么学下去肯定可以把android开发学习好的,再加上时而再温故下linux下的知识,看看androi ...
- Android开发学习路线的七个阶段和步骤
Android开发学习路线的七个阶段和步骤 Android学习参考路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和St ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- Android开发学习路线图
Android开发学习方法: Android是一个比较庞大的体系,从底层的Linux内核到上层的应用层,各部分的内容跨度也比较大.因此,一个好的学习方法对我们学习Android开发很重要. 在此建议, ...
- android开发学习笔记000
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...
随机推荐
- 开发微信小程序必须要知道的事
为什么是小程序? 为什么我们会开发小程序呢?或许是因为工作需要,或许是源于自己的追求(来自名利的欲望),但我要说--这是一种缘分,很美好的缘分,很多年后还值得庆幸的缘分 小程序目前可以分为三个阶段 一 ...
- ubuntu12.04开启Framebuffer
一.framebuffer概述 Framebuffer在Linux中是作为设备来实现的,它是对图形硬件的一种抽象,代表着显卡中的帧缓冲区(Framebuffer).通过Framebuffer设备,上层 ...
- vue 根据下拉框动态切换form的rule
taskCategorySelect (val) { // 任务类别下拉选择 if ( val == 5 ) { this.cameraORgateway = false; // true不可以使用 ...
- JVM运行原理详解
1.JVM简析: 作为一名Java使用者,掌握JVM的体系结构也是很有必要的. 说起Java,我们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Ja ...
- 【Codeforces Round #476 (Div. 2) [Thanks, Telegram!] A】Paper Airplanes
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 统计每个人需要的sheet个数. 乘上k 然后除p就是需要的pack个数了 [代码] #include <bits/stdc+ ...
- java文件对照工具
今天想比較一下两个java文件.这两个文件是本地的. 就在网上下载了一个对照工具(破解版)认为挺好用的对于不同的地方有高亮显示. 就给大家分享一下.软件名叫:beyond compare 软件下载地址 ...
- [Tools] Create your own mobile emulator device by using Chrome dev tool
Using the New Device Emulation Interface The Device Emulation interface changed a bit with the newer ...
- 2014年辛星解读css第三节
第二节我们讲述的差点儿全是CSS的选择器,那么以下这一节我们来讲一下CSS的颜色和文本的一些东西,尽管我对调色不大敏感.可是对于颜色还是比較感兴趣的. *********CSS中的颜色******** ...
- ADO.NET (二)—— ADO和ADO .NET对照
ADO.NET (二)-- ADO和ADO .NET对照 我们知道ADO.NET的两大核心组件各自是Data Provider和DataSet.假设说 DataSet是ADO.NET的心 ...
- 5种语言混合编程:C++、JS、python、Lisp、汇编
/* 混合C++.JS.python.Lisp.汇编 1种语言,5种语法 */ main { //C++ vector<int> v; v.push(2); putsl(v.size()) ...