<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登陆"
android:onClick="onClick"/>
<Button
android:id="@+id/btnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退出"
android:onClick="onClick"/> </RelativeLayout>

1 继承:

package com.sxt.day03_04;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
activity:写逻辑代码地方,自动创建,不能自己去new,第一个调用onCreate方法,
public class MainActivity extends Activity implements OnClickListener{ @Override
protected void onCreate(Bundle savedInstanceState) {
//savedInstanceState用于保存Activity中的数据,是一个hashMap,
super.onCreate(savedInstanceState);
//将activity_main.xml设置为本Activity显示的布局
//R代表res文件夹,只要res文件夹中有id值的控件都会在R中创建一个常量,
setContentView(R.layout.activity_main);
//将MainActivity.this地址保存在Button.OnClickListener属性中
//点击的时候执行this这个监听器的onClick方法
findViewById(R.id.btnLogin).setOnClickListener(this);
findViewById(R.id.btnExit).setOnClickListener(this);
} @Override
public void onClick(View v) {//View是所有布局的基类
switch (v.getId()) {
case R.id.btnLogin:
Toast.makeText(this, "执行登陆操作", 2000).show();
break;
case R.id.btnExit:
finish();
break;
}
} }

2 内部有名类:

package com.sxt.day03_05;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将MainActivity.this地址保存在Button.mOnClickListener属性中
//用内部类(内部有名类,不是匿名类)实现,如果很多类都用LoginClickListener这个对象则有很好的复用性
findViewById(R.id.btnLogin).setOnClickListener(new LoginClickListener());
} class LoginClickListener implements OnClickListener{
@Override
public void onClick(View v) {
if(v.getId()==R.id.btnLogin){
Toast.makeText(MainActivity.this, "执行登陆操作", 2000).show();
}
}
} }

3 外部类

package com.sxt.day03_06;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity {
EditText metId,metPwd;//用户名 密码 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
setListener();//设置按钮的点击事件监听器
} private void setListener() {
MyClickListener listener=new MyClickListener(metId, metPwd, this);
findViewById(R.id.btnLogin).setOnClickListener(listener);
findViewById(R.id.btnExit).setOnClickListener(listener);
} private void initView() {
metId=(EditText) findViewById(R.id.etId);
metPwd=(EditText) findViewById(R.id.etPwd);
} }
package com.sxt.day03_06;

import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast; public class MyClickListener implements OnClickListener {
EditText metId,metPwd;
MainActivity mActivity; public MyClickListener(EditText metId, EditText metPwd,
MainActivity mActivity) {
super();
this.metId = metId;
this.metPwd = metPwd;
this.mActivity = mActivity;
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnExit:
mActivity.finish();//关闭Mainactivity
break;
case R.id.btnLogin:
//取出登陆编号
String id=metId.getText().toString();
String pwd=metPwd.getText().toString();
Toast.makeText(mActivity, "登陆编号:"+id+",登陆密码:"+pwd, Toast.LENGTH_LONG).show();
break;
}
} }

最新文章

  1. 浏览器控制台命令调试——console
  2. Task:取消异步计算限制操作 &amp; 捕获任务中的异常
  3. 关于&quot;是否需要有代码规范&quot;的个人看法
  4. 微信公众平台C# SDK:Senparc.Weixin.MP.dll
  5. CentOS6.5菜鸟之旅:中文编辑器忍痛放弃Sublime
  6. 关于 List&lt;T&gt;
  7. mysql 编码测试
  8. Angular学习(2)- ng-app
  9. SqlServer维护计划
  10. 微信公共服务平台开发(.Net 的实现)2-------获得ACCESSTOKEN
  11. 数据库基本概念-oracle介绍
  12. Java中实例方法,实例变量,静态方法,静态变量,final方法重写的问题,覆盖
  13. final+基本类型导致只编译常量类引起的错误
  14. PM产品经理练级攻略(1-5等级)
  15. The Swift Programming Language-官方教程精译Swift(3)基本运算符
  16. 轻量级操作系统FreeRTOS的内存管理机制(一)
  17. input 显示/隐藏密码
  18. [补档]Password
  19. SAP成都研究院35岁以上的开发人员都去哪儿了?
  20. 「雅礼集训 2017 Day5」矩阵

热门文章

  1. python包管理器pip
  2. ubuntu14.04安装wine以及国际版QQ
  3. theano中对图像进行convolution 运算
  4. vbox里面的Ubuntu虚拟机与主机win7之间设置共享文件夹
  5. Hyper Prefix Sets
  6. python functools模块
  7. linux 设置命令行属性,背景色,前景色等
  8. git reset到之前的某一个commit或者恢复之前删除的某一个分支
  9. Android Studio启动时Fetching android sdk component information超时的解决方案
  10. bzoj1212