欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现EventBus登录界面与传值(粘性事件)

程序员文章站 2023-01-01 15:51:48
本文实例为大家分享了android实现eventbus登录界面与传值的具体代码,供大家参考,具体内容如下 展示效果 添加eventbus导入依赖 comp...

本文实例为大家分享了android实现eventbus登录界面与传值的具体代码,供大家参考,具体内容如下

展示效果

Android实现EventBus登录界面与传值(粘性事件)

添加eventbus导入依赖

compile 'org.greenrobot:eventbus:3.0.0'

主mainactivity方法

public class mainactivity extends appcompatactivity {
 private edittext username,password;
 private button btn_go;
 private list<userevent> mdata;
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_main);
 mdata=new arraylist<userevent>();
 username=(edittext)findviewbyid(r.id.username);
 password=(edittext)findviewbyid(r.id.passwork);
 btn_go=(button)findviewbyid(r.id.btn_go);
 btn_go.settext("登录");
 btn_go.setonclicklistener(new view.onclicklistener() {
  @override
  public void onclick(view view) {
  string name = username.gettext().tostring().trim();
  string pass = password.gettext().tostring().trim();
  eventbus.getdefault().poststicky(new userevent(name,pass));
  startactivity(new intent(mainactivity.this,mainbctivity.class));
  }
 });
 }
}

主mainbctivity方法

public class mainbctivity extends appcompatactivity {
 private button btn_shou;
 private textview tv_b;
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_main_bctivity);
 btn_shou=(button)findviewbyid(r.id.btn_shou);
 btn_shou.settext("接受参数");
 btn_shou.setonclicklistener(new view.onclicklistener() {
  @override
  public void onclick(view view) {
  if(!eventbus.getdefault().isregistered(mainbctivity.this)){
   eventbus.getdefault().register(mainbctivity.this);
  }else{
   toast.maketext(mainbctivity.this, "请勿重复注册事件", toast.length_short).show();
  }
  }
 });
 tv_b=(textview)findviewbyid(r.id.tv_b);
 tv_b.settext("账号多少呢!");

 }

 @override
 protected void ondestroy() {
 super.ondestroy();
 eventbus.getdefault().unregister(mainbctivity.this);
 }
 @subscribe(threadmode = threadmode.posting,sticky = true)
 public void onmoonevent(userevent userevent){
 tv_b.settext("账号:"+userevent.getusername()+"密码:"+userevent.getpasswork());
 }
}

userevent(事件类)

public class userevent {
 private string username;
 private string passwork;

 public userevent(string username, string passwork) {
 this.username = username;
 this.passwork = passwork;
 }

 public string getusername() {
 return username;
 }

 public void setusername(string username) {
 this.username = username;
 }

 public string getpasswork() {
 return passwork;
 }

 public void setpasswork(string passwork) {
 this.passwork = passwork;
 }

 public userevent() {
 }

 @override
 public string tostring() {
 return "userevent{" +
  "username='" + username + '\'' +
  ", passwork='" + passwork + '\'' +
  '}';
 }
}

activity_main(mainactivity的布局)

<relativelayout
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <imageview
  android:id="@+id/hh_img"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@mipmap/logo"
  android:layout_centerhorizontal="true"
  android:layout_margintop="40dp"
  />
 <edittext
  android:id="@+id/username"
  android:layout_below="@id/hh_img"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_margintop="10dp"
  android:hint="用户名"
  />
 <edittext
  android:id="@+id/passwork"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_below="@id/username"
  android:layout_margintop="10dp"
  android:hint="密码"
  />
 <button
  android:id="@+id/btn_go"
  android:layout_below="@id/passwork"
  android:layout_margintop="10dp"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  />
 <textview
  android:id="@+id/new_user"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_below="@id/btn_go"
  android:text="新用户"
  android:layout_margintop="5px"
  />
 </relativelayout>

activity_main_bctivity(mainbctivity的布局)

<button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignparenttop="true"
 android:layout_centerhorizontal="true"
 android:layout_margintop="20dp"
 android:id="@+id/btn_shou" />

 <textview
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_below="@+id/btn_shou"
 android:layout_centerhorizontal="true"
 android:layout_margintop="32dp"
 android:id="@+id/tv_b" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。