宝思哲手表网站服务器维护中

web/2025/9/27 6:40:01/文章来源:
宝思哲手表网站,服务器维护中,专业app制作平台,杭州哪家seo公司好前言#xff1a;EventBus是上周项目中用到的#xff0c;网上的文章大都一样#xff0c;或者过时#xff0c;有用的没几篇#xff0c;经过琢磨#xff0c;请教他人#xff0c;也终于弄清楚点眉目#xff0c;记录下来分享给大家。 相关文章#xff1a; 1、《EventBus使用… 前言EventBus是上周项目中用到的网上的文章大都一样或者过时有用的没几篇经过琢磨请教他人也终于弄清楚点眉目记录下来分享给大家。   相关文章 1、《EventBus使用详解(一)——初步使用EventBus》 2、《EventBus使用详解(二)——EventBus使用进阶》   一、概述 EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在FragmentActivityService线程之间传递消息.优点是开销小代码更优雅。以及将发送者和接收者解耦。1、下载EventBus的类库源码https://github.com/greenrobot/EventBus 2、基本使用 1自定义一个类可以是空类比如 [java] view plaincopy public class AnyEventType {       public AnyEventType(){}   }   2在要接收消息的页面注册 [java] view plaincopy eventBus.register(this);   3发送消息 [java] view plaincopy eventBus.post(new AnyEventType event);   4接受消息的页面实现(共有四个函数各功能不同这是其中之一可以选择性的实现这里先实现一个) [java] view plaincopy public void onEvent(AnyEventType event) {}   5解除注册 [java] view plaincopy eventBus.unregister(this);   顺序就是这么个顺序可真正让自己写估计还是云里雾里的下面举个例子来说明下。 首先在EventBus中获取实例的方法一般是采用EventBus.getInstance()来获取默认的EventBus实例当然你也可以new一个又一个个人感觉还是用默认的比较好以防出错。 二、实战 先给大家看个例子 当击btn_try按钮的时候跳到第二个Activity当点击第二个activity上面的First Event按钮的时候向第一个Activity发送消息当第一个Activity收到消息后一方面将消息Toast显示一方面放入textView中显示。 按照下面的步骤下面来建这个工程 1、基本框架搭建 想必大家从一个Activity跳转到第二个Activity的程序应该都会写这里先稍稍把两个Activity跳转的代码建起来。后面再添加EventBus相关的玩意。 MainActivity布局activity_main.xml [html] view plaincopy LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android      xmlns:toolshttp://schemas.android.com/tools      android:layout_widthmatch_parent      android:layout_heightmatch_parent      android:orientationvertical            Button           android:idid/btn_try          android:layout_widthmatch_parent          android:layout_heightwrap_content          android:textbtn_bty/      TextView           android:idid/tv          android:layout_widthwrap_content          android:layout_heightmatch_parent/    /LinearLayout   新建一个ActivitySecondActivity布局activity_second.xml [html] view plaincopy LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android      xmlns:toolshttp://schemas.android.com/tools      android:layout_widthmatch_parent      android:layout_heightmatch_parent      android:orientationvertical      tools:contextcom.harvic.try_eventbus_1.SecondActivity         Button           android:idid/btn_first_event          android:layout_widthmatch_parent          android:layout_heightwrap_content          android:textFirst Event/    /LinearLayout   MainActivity.java 点击btn跳转到第二个Activity [java] view plaincopy public class MainActivity extends Activity {        Button btn;        Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            btn  (Button) findViewById(R.id.btn_try);            btn.setOnClickListener(new View.OnClickListener() {                Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  Intent intent  new Intent(getApplicationContext(),                          SecondActivity.class);                  startActivity(intent);              }          });      }    }   到这基本框架就搭完了下面开始按步骤使用EventBus了。 2、新建一个类FirstEvent [java] view plaincopy package com.harvic.other;    public class FirstEvent {        private String mMsg;      public FirstEvent(String msg) {          // TODO Auto-generated constructor stub          mMsg  msg;      }      public String getMsg(){          return mMsg;      }  }   这个类很简单构造时传进去一个字符串然后可以通过getMsg()获取出来。 3、在要接收消息的页面注册EventBus 在上面的GIF图片的演示中大家也可以看到我们是要在MainActivity中接收发过来的消息的所以我们在MainActivity中注册消息。 通过我们会在OnCreate()函数中注册EventBus在OnDestroy函数中反注册。所以整体的注册与反注册的代码如下 [java] view plaincopy package com.example.tryeventbus_simple;    import com.harvic.other.FirstEvent;    import de.greenrobot.event.EventBus;  import android.app.Activity;  import android.content.Intent;  import android.os.Bundle;  import android.util.Log;  import android.view.View;  import android.widget.Button;  import android.widget.TextView;  import android.widget.Toast;    public class MainActivity extends Activity {        Button btn;      TextView tv;        Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);                  //注册EventBus          EventBus.getDefault().register(this);            btn  (Button) findViewById(R.id.btn_try);          tv  (TextView)findViewById(R.id.tv);            btn.setOnClickListener(new View.OnClickListener() {                Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  Intent intent  new Intent(getApplicationContext(),                          SecondActivity.class);                  startActivity(intent);              }          });      }      Override      protected void onDestroy(){          super.onDestroy();          EventBus.getDefault().unregister(this);//反注册EventBus      }  }   4、发送消息 发送消息是使用EventBus中的Post方法来实现发送的发送过去的是我们新建的类的实例 [java] view plaincopy EventBus.getDefault().post(new FirstEvent(FirstEvent btn clicked));   完整的SecondActivity.java的代码如下 [java] view plaincopy package com.example.tryeventbus_simple;    import com.harvic.other.FirstEvent;    import de.greenrobot.event.EventBus;  import android.app.Activity;  import android.os.Bundle;  import android.view.View;  import android.widget.Button;    public class SecondActivity extends Activity {      private Button btn_FirstEvent;        Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_second);          btn_FirstEvent  (Button) findViewById(R.id.btn_first_event);            btn_FirstEvent.setOnClickListener(new View.OnClickListener() {                Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  EventBus.getDefault().post(                          new FirstEvent(FirstEvent btn clicked));              }          });      }  }   5、接收消息 接收消息时我们使用EventBus中最常用的onEventMainThread函数来接收消息具体为什么用这个我们下篇再讲这里先给大家一个初步认识要先能把EventBus用起来先。 在MainActivity中重写onEventMainThreadFirstEvent event参数就是我们自己定义的类 在收到Event实例后我们将其中携带的消息取出一方面Toast出去一方面传到TextView中 [java] view plaincopy public void onEventMainThread(FirstEvent event) {        String msg  onEventMainThread收到了消息  event.getMsg();      Log.d(harvic, msg);      tv.setText(msg);      Toast.makeText(this, msg, Toast.LENGTH_LONG).show();  }   完整的MainActiviy代码如下 [java] view plaincopy package com.example.tryeventbus_simple;    import com.harvic.other.FirstEvent;    import de.greenrobot.event.EventBus;  import android.app.Activity;  import android.content.Intent;  import android.os.Bundle;  import android.util.Log;  import android.view.View;  import android.widget.Button;  import android.widget.TextView;  import android.widget.Toast;    public class MainActivity extends Activity {        Button btn;      TextView tv;        Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            EventBus.getDefault().register(this);            btn  (Button) findViewById(R.id.btn_try);          tv  (TextView)findViewById(R.id.tv);            btn.setOnClickListener(new View.OnClickListener() {                Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  Intent intent  new Intent(getApplicationContext(),                          SecondActivity.class);                  startActivity(intent);              }          });      }        public void onEventMainThread(FirstEvent event) {            String msg  onEventMainThread收到了消息  event.getMsg();          Log.d(harvic, msg);          tv.setText(msg);          Toast.makeText(this, msg, Toast.LENGTH_LONG).show();      }        Override      protected void onDestroy(){          super.onDestroy();          EventBus.getDefault().unregister(this);      }  }   好了到这基本上算初步把EventBus用起来了下篇再讲讲EventBus的几个函数及各个函数间是如何识别当前如何调用哪个函数的。   如果我的文章有帮到你请关注哦。 源码地址http://download.csdn.net/detail/harvic880925/8111357 请大家尊重原创者版权转载请标明出处http://blog.csdn.net/harvic880925/article/details/40660137   谢谢 转载于:https://www.cnblogs.com/Free-Thinker/p/7573450.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设前期响应式网站下载

随着移动互联网的快速发展,UGC标签系统受到越来越多推荐应用,标签不但能反映用户的兴趣又能描述物品的本身特征。现有的标签推荐算法没有考虑用户的连续行为所产生的影响,于是人们提出了一种基于标签的个性化推荐算法。该算法将〈用户-标签-物…

成都青羊区建设局网站flash做网站轮播图

动画系统包含: 动画片段 Animation Clip,记录物体变化的信息,可以是角色的闪转腾挪,也可以是一扇门的开闭动画状态机 Animator Controller,根据设置切换动画片段动画组件 Animator,Animation替身 Avatar&a…

山西p2p网站建设app网站与普通网站的区别

JavaScript闭包 前言概念代码实例以及讲解闭包作用闭包缺点 前言 本文主要讲解JavaScript中的闭包,闭包是什么? 闭包(closure)是一个函数以及其捆绑的周边环境状态(lexical environment,词法环境&#xff…

用wordpress建站会不会显得水平差培训网

3月1日是我回学校的第一天。经历了长达8个月在家的昏暗时刻,我这10天的感觉和在家的感觉发生了翻天覆地的变化,最明显的莫过于学习状态的改变。 倒不是说在家学的不好,而是说在学校,我对学习的整体感觉,以及专注程度&…

上海网站推广提供商广州做网站信科建设

参考:《C专家编程》 例子 void(*signal(int sig, void(*func)(int)))(int);分析:signal是一个函数,返回一个函数指针,它指向的函数接受int参数返回void。signal的参数是int和一个接受int的函数指针。 可以使用typedef进行简化&a…

ctoc的网站有哪些域名注册需要多少钱?

当调试windows程序的时候,有时候会需要一些符号文件。系统的公有符号文件微软都是提供的,只需在调试器中设置即可,在下次调试时,调试器会自动从网上下载需要的符号文件。可以使用符号文件的调试器有windbg等等。 符号服务器地址&a…

东莞免费模版网站建设企业网站建设市场报价

✨个人主页: 北 海 🎉所属专栏: MySQL 学习 🎃操作环境: CentOS 7.6 腾讯云远程服务器 🎁软件版本: MySQL 5.7.44 文章目录 1.MySQL 的清理与安装1.1查看是否存在 MySQL 服务1.2.卸载原有服务1.…

新乡网站优化国内时事新闻2023最新

保护性拷贝(Defensive Copy)是一种常见的编程实践,用于在传递参数或返回值时,创建副本以防止原始对象被意外修改。以下是一个例子,展示了何时进行保护性拷贝: mport java.util.ArrayList; import java.uti…

2019流行做什么网站网站网站源码爬取

ianstormtaylor/slate Stars: 28.8k License: MIT slate 是一个完全可定制的框架,用于构建富文本编辑器。 可以构建类似 Medium、Dropbox Paper 或 Google Docs 的富文本编辑器通过一系列插件实现所有逻辑,避免代码复杂度受到 Draft.js、Prosemirror 和…

网站收缩引擎入口网页游戏开服

前言:mysqldump是MySQL自带的逻辑备份工具,可以将整个数据库或者指定的表格导出为一个SQL脚本文件,可以用于数据库备份。 1、编写shell脚本 # 备份文件保存路径 backup_dir/data/mysqlbackup # 当前时间 current_timedate %Y-%m-%d-%H-%M-%S…

大连小程序哪个开发公司好网站优化是什么

前言微服务在编程圈火的是不行不行的啦,可能还有很多小伙伴还没有进行微服务实操,但这个词,要说没听过、没看过,那小伙伴一定是假Programmer。虽然微服务很火,但不能盲目使用;先不说涉及技术和工具有多少&a…

威海做网站的重庆社区app最新版本下载

1. 题目 给定数组 A&#xff0c;我们可以对其进行煎饼翻转&#xff1a;我们选择一些正整数 k < A.length&#xff0c;然后反转 A 的前 k 个元素的顺序。我们要执行零次或多次煎饼翻转&#xff08;按顺序一次接一次地进行&#xff09;以完成对数组 A 的排序。 返回能使 A 排…

网站与网页的关系什么是网络营销定价中除免费策略外

题目描述 在本题中&#xff0c;格点是指横纵坐标皆为整数的点。 为了圈养他的牛&#xff0c;农夫约翰&#xff08;Farmer John)建造了一个三角形的电网。他从原点&#xff08;0,0&#xff09;牵出一根通电的电线&#xff0c;连接格点(n,m)&#xff08;0<n<32000,0<m&l…

python搭建个人网站一个营销型网站模板

1.认识列表列表可以放入所有我们目前学习过的数据类型&#xff0c;甚至包括列表2.有关列表的方法、内置函数(设列表的名称为list)向列表中添加元素&#xff1a;append()&#xff1a;list.append(要添加的元素)&#xff0c;注意每次只能添加一个元素&#xff0c;被添加的元素自动…

网站经营网络备案信息正则表达式 网站地址

1. 单链表的概念和结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表与顺序表都属于线性表&#xff0c;顺序表在物理存储结构上是线性的&#xff0c;但是链表在物理存储结构上…

专业的建设网站服务公司苏州园区人才市场

8.1 可迭代对象(Iterable)大部分对象都是可迭代&#xff0c;只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身&#xff0c;例如&#xff1a;>>> lst [1,2,3]>>> lst.__iter__()Python提供一些语句和关键字用于访问可迭代…

集团定制网站建设公司网站开发团队名字

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 一:go语言面向web编程认知 Go语言的最大优势在于并发与性能,其性能可以媲美C和C,并发在网络编程中更是至关重要 使用http发送请…

网站备案有什么风险优化是什么工作

[适用于 linux 和 mac] 比如 ~/.ssh/config: Host targetHostName 192.168.2.12User rootPort 9990这样每次 ssh target 的时候每次都需要输入密码&#xff0c;比较麻烦 解决办法如下&#xff0c;可让下次不用重新输入密码 # 先要生成 ssh 密钥 ssh-keygen# 配置永久性密码 s…

现在百度怎么优化排名seo的网站

happiness 题解: 将图转换成最小割. 将割完的图中与S相连的点看做选文科, 与T相连的点看做选理科. flow(s, u) 文科值 flow(u,t) 理科值 假设u 和 v 一起选文科有奖励值z, flow(s,u) z/2 flow(s,v) z/2, flow(u,v) z/2 假设u 和 v 一起选理科有奖励值z, flow(u,t) z/2…