博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓事件机制与页面跳转
阅读量:5953 次
发布时间:2019-06-19

本文共 2097 字,大约阅读时间需要 6 分钟。

      昨天学习了安卓开发中实现点击一个按钮实现页面的跳转

      首先点击一个按钮就会触发动作,这里就是给按钮加监听。一般对于事件监听,我们需要了解以下三类对象:事件源、事件、事件监听器,一般在安卓里,事件源就是指在哪个组件或窗口上发生动作,这里的事件源就是按钮;而事件则是指在这个事件源上发生了什么事情,如点击、悬浮等等;事件监听器则是针对发生的事件作出相应的反应,这里就是指点击按钮后发生页面的跳转。在 activity_main.xml文件中已经存在了按钮,我们无需再去实例化一个,而只要找到那个按钮并对它实现监听即可。因此,可以通过R文件将两者联系起来,Activity中有一个findViewById()方法可以由此获取按钮的id从而得到这个按钮,示例代码如下:

1 //通过findViewById方法找到控件并强制转型,这里之所以能强制转型是因为   Button是继承自view2 Button  LoginButton  = (Button)this.findViewById(R.id.btnLogin);3 4 //创建一个监听器对象,并把这个activity即this传过去5 ClickListener btnListener = new ClickListener(this); 6 7 //给按钮添加监听器8 LoginButton.setOnClickListener(btnListener);

注意:这里是使用了外部类定义事件监听器类。

 

    事件监听器类是实现了OnClickListener接口,并重写了它里面的onClick(View v)方法。我们点击了登录按钮后就执行这个方法,在这个方法里,首先要获取用户输入的信息,并进行验证,满足要求后才可启动页面跳转。其中用到了信息提示框,用到的方法是Toast(),其中的三个参数分别表示的含义是,第一个:上下文对象;第二个:出现的提示内容;第三个:提示的时间长短。

1 public void onClick(View v) { 2    //找到用户名输入框控件对象.获取用户名并将其转换为字符串型 3    EditText  editUserName  =(EditText)la.findViewById(R.id.editUserName); 4    String username = editUserName.getText().toString(); 5  6   //找到密码输入框控件对象,获取密码并转换为字符串 7   EditText  editPassword  =(EditText)la.findViewById(R.id.editPassword); 8   String password = editPassword.getText().toString(); 9 10   //判断用户名是否为空11   if("".equals(username)){12      //在界面上显示提示错误信息13      Toast.makeText(la,"请输入用户名!", Toast.LENGTH_SHORT).show();14      return;15 }16   if("".equals(password)){17      Toast.makeText(la,"请输入密码!", Toast.LENGTH_SHORT).show();18      return;19 }20    if("admin".equals(username) && "123456".equals(password)){21    //在界面上显示登录成功信息22    Toast.makeText(la,"登录成功!", Toast.LENGTH_LONG).show();23 } else {24    Toast.makeText(la,"对不起!用户名或密码错误!", Toast.LENGTH_LONG).show();25 } 26 }
页面跳转是从当前的Activity对象跳到另一个Activity对象,这里我们需要用到Intent对象,通过在创建Intent对象的时候给Intent设置不同的参数让系统知道我们需要跳转到哪一个界面 所以在登录成功信息后面再加上下列代码 1 //创建Intent对象,给它参数2 //Intent 构造方法的第一个参数是当前界面的 Activity 对象,第二个参数是要跳转到另一个界面对应的 Activity 类3 Intent  intent  =  new  Intent(la,SecondActivity.class); 4 5 //也可向下一个界面传递参数6 intent.putExtra("msg",  "我来自第一个Activity"); 7 8 //启动跳转9 la.startActivity(intent);

 

 

 

     

转载于:https://www.cnblogs.com/tyingxy/p/5244332.html

你可能感兴趣的文章
AI产品开发的核心原则:以研究为核心驱动
查看>>
大规模集群中Docker镜像如何分发管理?试试Uber刚开源的Kraken
查看>>
WinDocks发布Windows版本的Docker引擎
查看>>
完美解决html中select的option不能隐藏的问题。
查看>>
推荐5大开源工具,用于开发Kubernetes项目
查看>>
制定2015年的移动开发策略
查看>>
JPA 2.2改进了易用性
查看>>
从蚂蚁金服实践入手,带你深入了解 Service Mesh
查看>>
24周年,“常青树”Delphi发布新版本10.3.1
查看>>
7. 从数据库获取数据- 从零开始学Laravel
查看>>
阿里百川码力APP监控 来了!
查看>>
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
[React Native Android 安利系列]样式与布局的书写
查看>>
利用dxflib读写cad文件
查看>>
《DOM编程艺术》中CSS—DOM的总结(一)
查看>>
服务器迁移小记
查看>>