一步一步学android之事件篇——单击事件
在使用软件的时候单击事件必不可少,比如我想确定、取消等都需要用户的单击,所有的单击事件都是由View.OnClickListener接口来进行处理的,接口定义如下:
public static interface View.OnClickListener{
public void onClick(View v) { }
}
下面同样写个例子来看下如何监听单击事件:
运行效果:
单击前的效果
单击后的效果
main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <EditText
android:id="@+id/info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入信息...">
</EditText> <Button
android:id="@+id/bt_show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="显示EditText里面的内容到下面的TextView中" /> <TextView
android:id="@+id/tv_show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我是用来显示EditText内容的TextView,点击上面的按钮我就能显示" /> </LinearLayout>
MainActivity.java:
package com.example.clickdemo; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; public class MainActivity extends Activity {
//定义三个用到的组件
private Button bt_show;
private EditText info;
private TextView tv_show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
//单独写个方法初始化组件
private void initView(){
//从xml中获取Button,xml中id的作用
bt_show = (Button)super.findViewById(R.id.bt_show);
//从xml中获取EditText
tv_show = (TextView)super.findViewById(R.id.tv_show);
//从xml中获取TextView
info = (EditText)super.findViewById(R.id.info); //为Button按钮添加单击事件
bt_show.setOnClickListener(new MyClickListener());
}
//定义监听处理程序
private class MyClickListener implements OnClickListener{ public void onClick(View v) {
// TODO Auto-generated method stub
//首先获取EditText中的内容
String temp = info.getText().toString();
//再把内容设置到TextView中
tv_show.setText(temp);
} } }
第一次
使用findViewById()方法,说明一下这个方法的作用是取得在xml中的组件,如果没取组件就用会报空指针异常,然后是使用setOnClickListener()方法来为对按钮监听,这里是定义了一个内部类来实现OnClickListener接口,然后在OnClick方法中实现自己的逻辑(单击后要做的事情)。
上面的代码还可以修改为不使用内部类,毕竟我们只用一次,所以改成下面的使用匿名内部类的方法:
MainActivity.java:
package com.example.clickdemo; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; public class MainActivity extends Activity {
//定义三个用到的组件
private Button bt_show;
private EditText info;
private TextView tv_show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
//单独写个方法初始化组件
private void initView(){
//从xml中获取Button,xml中id的作用
bt_show = (Button)super.findViewById(R.id.bt_show);
//从xml中获取EditText
tv_show = (TextView)super.findViewById(R.id.tv_show);
//从xml中获取TextView
info = (EditText)super.findViewById(R.id.info); //为Button按钮添加单击事件
bt_show.setOnClickListener(new OnClickListener() { public void onClick(View v) {
// TODO Auto-generated method stub
//首先获取EditText中的内容
String temp = info.getText().toString();
//再把内容设置到TextView中
tv_show.setText(temp);
}
});
}
}
效果是一样的,今天就说到这里了。
一步一步学android之事件篇——单击事件的更多相关文章
- xamarin android如何监听单击事件
在xamarin android单击事件是最基础的事情,看过菜鸟上的android教程时,java写的都是监听事件,为一个按钮,单选按钮.多选按钮的单击事件有三种,前面两种用的非常普遍,也很简易,我这 ...
- Android代码规范----按钮单击事件的四种写法
[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...
- 第二十六篇-单击事件、Toast(提示框信息)
单击事件有3种方法: 第一种: layout.xml <?xml version="1.0" encoding="utf-8"?> <Line ...
- jQuery-3.事件篇---鼠标事件
jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是点击操作.jQuery提供了两个方法一个是click方法用于监听用户单击操作,另一个方法是dbclick方法用于 ...
- jQuery-3.事件篇---自定义事件
jQuery自定义事件之trigger事件 众所周知类似于mousedown.click.keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发. 在j ...
- jQuery-3.事件篇---键盘事件
jQuery键盘事件之keydown()与keyup()事件 鼠标有mousedown,mouseup之类的事件,这是根据人的手势动作分解的2个触发行为.相对应的键盘也有这类事件,将用户行为分解成2个 ...
- jQuery事件篇---高级事件
内容提纲: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one 发文不易,转载请注明出处! 一.模拟操作 在事件触发的时候,有时我们需要一些模拟用户行为的操作.例如:当网页加载完毕 ...
- jQuery事件篇---基础事件
写在前面: 有一段时间未更新博客了,利用这段时间,重新看了<jQuery基础教程 第四版>和<锋利的jQuery 第二版>,这两本书绝对是jQuery入门非常好的书,值得多读几 ...
- JS事件 鼠标单击事件( onclick )通常与按钮一起使用。onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行
鼠标单击事件( onclick ) onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件.同时onclick事件调用的程序块就会被执行,通常与按钮一起使用. 比如,我们单击按钮时,触发 ...
随机推荐
- java集合之链式操作
如果用过js/jquery.groovy等语言,大概对这样的代码比较熟悉: [1,2,3].map(function(d){...}).grep(function(d){...}).join(',') ...
- 【POJ2752】【KMP】Seek the Name, Seek the Fame
Description The little cat is so famous, that many couples tramp over hill and dale to Byteland, and ...
- java 全角、半角字符串转换
转自:http://www.cnblogs.com/modou/articles/2679815.html 加入了空字符串的验证 半角转全角的方法: /** * @Title: ToSBC * ...
- [开源]jquery-ajax-cache:快速优化页面ajax请求,使用localStorage缓存请求
项目:jquery-ajax-cache 地址:https://github.com/WQTeam/jquery-ajax-cache 最近在项目中用到了本地缓存localStorage做数据 ...
- PHP中截取中文乱码
大家都知道,一个汉字在gb2312下面是占2个字节,用传统的substr肯定会出问题 ,所以应该用,mb_substr和mb_strcut两个函数 在这个之前,打开php.ini打开php_mbstr ...
- phpcms栏目调用
{loop subcat(0,0,0,$siteid) $r} {php $num++} <h3><a href="{$r[url]}">{$r[catna ...
- 03:计算(a+b)/c的值
总时间限制: 1000ms 内存限制: 65536kB 描述 给定3个整数a.b.c,计算表达式(a+b)/c的值,/是整除运算. 输入 输入仅一行,包括三个整数a.b.c, 数与数之间以一个空格 ...
- ACM组队安排
Problem Description ACM亚洲区比赛结束,意味着开始备战明年的浙江省大学生程序设计竞赛了! 杭州电子科技大学ACM集训队也准备开始组队. 教练想把所有的n个队员组成若干支队 ...
- 安卓SDK Manager自动管理各种包
安卓ADT不能自动从google下载sdk等各种工具 修改hosts文件下载成功 210.242.125.89 dl-ssl.google.com 210.242.125.89 dl.google ...
- [BZOJ 1085] [SCOI2005] 骑士精神 [ IDA* 搜索 ]
题目链接 : BZOJ 1085 题目分析 : 本题中可能的状态会有 (2^24) * 25 种状态,需要使用优秀的搜索方式和一些优化技巧. 我使用的是 IDA* 搜索,从小到大枚举步数,每次 DFS ...