从零开始学android:Android事件处理—单击事件
来源:互联网 发布:淘宝卖家违规几次封号 编辑:程序博客网 时间:2024/05/21 19:44
单击事件
在手机使用的过程之中,经常要使用按钮触发一些基本的操作,这个时候就可以通过单击事件完成,单击事件使用View.OnClickListener接口进行事件的处理,此接口定义如下。
public static interface View.OnClickListener{public void onClick(View v) ;}
范例一:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/myed" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入您的姓名" /> <Button android:id="@+id/mybut" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示输入信息" /> <TextView android:id="@+id/mytext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="输入的信息是:" /></LinearLayout>
代码文件:
package com.richard.clicklistener;import android.os.Bundle;import android.app.Activity;import android.view.Menu;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 TextView showView = null;private EditText edit = null;private Button but = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.but = (Button) super.findViewById(R.id.mybut);this.showView = (TextView) super.findViewById(R.id.mytext);this.edit = (EditText) super.findViewById(R.id.myed);but.setOnClickListener(new ShowListener());//定义监听}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private class ShowListener implements OnClickListener {public void onClick(View v){String info = edit.getText().toString();//取得文本框输入内容showView.setText("输入的内容是:" + info);}}}
范例二:
简单的四则运算
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/myeda" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" 输入第一个数字..." /> <TextView android:id="@+id/note" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/myedb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="输入第二个数字..." /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> <TextView android:id="@+id/mytext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="计算结果..." /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:id="@+id/mybutadd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" /> <Button android:id="@+id/mybutsub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" /> <Button android:id="@+id/mybutmul" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="*" /> <Button android:id="@+id/mybutdiv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="/" /> </LinearLayout> </LinearLayout>
package com.richard.size;import android.os.Bundle;import android.app.Activity;import android.view.Menu;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 TextView showView = null;private TextView note = null;private EditText editnum1 = null;private EditText editnum2 = null;private Button butAdd = null;private Button butSub = null;private Button butMul = null;private Button butDiv = null;private int num1 = 0;private int num2 = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.showView = (TextView) super.findViewById(R.id.mytext);//取得文本显示组件this.editnum1 = (EditText) super.findViewById(R.id.myeda);//取得文本编辑组建this.editnum2 = (EditText) super.findViewById(R.id.myedb);//取得文本编辑组件this.butAdd = (Button) super.findViewById(R.id.mybutadd);this.butSub = (Button) super.findViewById(R.id.mybutsub);this.butMul = (Button) super.findViewById(R.id.mybutmul);this.butDiv = (Button) super.findViewById(R.id.mybutdiv);this.note = (TextView) super.findViewById(R.id.note);this.butAdd.setOnClickListener(new AddListener());//定义监听this.butSub.setOnClickListener(new SubListener());//定义监听this.butMul.setOnClickListener(new MulListener());//定义监听this.butDiv.setOnClickListener(new DivListener());//定义监听this.editnum1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){MainActivity.this.editnum1.setText("");}});this.editnum2.setOnClickListener(new OnClickListener(){public void onClick(View v){MainActivity.this.editnum2.setText("");}});}class AddListener implements OnClickListener{public void onClick(View v){MainActivity.this.num1 = Integer.parseInt(MainActivity.this.editnum1.getText().toString());MainActivity.this.num2 = Integer.parseInt(MainActivity.this.editnum2.getText().toString());MainActivity.this.note.setText(" + ");MainActivity.this.showView.setText(String.valueOf(num1 + num2)//设置文本显示组件);}}class SubListener implements OnClickListener{public void onClick(View v){MainActivity.this.num1 = Integer.parseInt(MainActivity.this.editnum1.getText().toString());MainActivity.this.num2 = Integer.parseInt(MainActivity.this.editnum2.getText().toString());MainActivity.this.note.setText(" - ");MainActivity.this.showView.setText(String.valueOf(num1 - num2)//设置文本显示组件);}}class MulListener implements OnClickListener{public void onClick(View v){MainActivity.this.num1 = Integer.parseInt(MainActivity.this.editnum1.getText().toString());MainActivity.this.num2 = Integer.parseInt(MainActivity.this.editnum2.getText().toString());MainActivity.this.note.setText(" * ");MainActivity.this.showView.setText(String.valueOf(num1 * num2)//设置文本显示组件);}}class DivListener implements OnClickListener{public void onClick(View v){MainActivity.this.num1 = Integer.parseInt(MainActivity.this.editnum1.getText().toString());MainActivity.this.num2 = Integer.parseInt(MainActivity.this.editnum2.getText().toString());MainActivity.this.note.setText(" / ");MainActivity.this.showView.setText(String.valueOf(num1 / num2)//设置文本显示组件);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
显示效果不是很好,所以我们改变一下屏幕显示方向。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.richard.size" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.richard.size.MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboard"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
范例三:
明文显示密码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请输入用户密码" /><EditText android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:password="true" /><CheckBox android:id="@+id/show" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="false" android:text="显示密码" /> </LinearLayout>
package com.richard.showpasswd;import android.os.Bundle;import android.app.Activity;import android.text.method.HideReturnsTransformationMethod;import android.text.method.PasswordTransformationMethod;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.CheckBox;import android.widget.EditText;public class MainActivity extends Activity {private EditText password = null;private CheckBox show = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.password = (EditText) super.findViewById(R.id.password);this.show = (CheckBox) super.findViewById(R.id.show);this.show.setOnClickListener(new OnClickListenerImpl());}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private class OnClickListenerImpl implements OnClickListener{@Overridepublic void onClick(View v){if(show.isChecked()){MainActivity.this.password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());}else{MainActivity.this.password.setTransformationMethod(PasswordTransformationMethod.getInstance());}}}}
小结
单击事件为View本身所定义的一种常见事件;
在使用单击事件可以使用内部类或者是匿名内部类的方式进行事件处理。
- 从零开始学android:Android事件处理—单击事件
- 从零开始学android:Android事件处理—焦点事件
- 从零开始学android:Android事件处理—长按事件
- 从零开始学android:Android事件处理—键盘事件
- 从零开始学android:Android事件处理—触摸事件
- 从零开始学android:Android事件处理—单选钮与OnCheckedChangeListener
- 一步一步学android之事件篇——单击事件
- 从零开始学android<android事件的处理方式.二十四.>
- 从零开始学android:Android事件处理—下拉列表框与OnItemSelectedListener
- 从零开始学android:Android事件处理—监听日期与时间的改变
- android处理单击双击和滑动事件
- android处理单击双击和滑动事件
- android listview单击事件
- Android Button 单击事件
- Android按钮单击事件
- android edittext 单击事件
- android listview单击事件
- 一步一步学android之事件篇——单击事件(示例:改变屏幕显示方向)
- 玩手机助手——android应用
- 第一章 Django环境配置
- Mysql 慢查询日志
- 面向对象的设计思想
- java-----螺旋矩阵
- 从零开始学android:Android事件处理—单击事件
- 设计模式--抽象工厂模式
- 使用ifstream和getline读取文件内容[c++]
- tool
- Java代码优化编程
- 写给妹妹的编程札记 5 - 搜索: 迷宫问题 - 广度优先搜索
- Android之Content Providers
- Codeforces Round #215 (Div. 2) -A. Sereja and Coat Rack
- [ javascript ] UEditor单独图片上传组件!适用IE,Chrome,firefox.