Event的简单实现登录相互传递数据
来源:互联网 发布:淘宝买家秀图片采集器 编辑:程序博客网 时间:2024/06/04 20:00
效果图中我们可以看到,我们是点击"接收数据"按钮后,跳转到登录页面,然后把登录的数据传回并显示出来,我把"接收数据"按钮写在了SecondActivity中,所以记得在权限里,改变一下首页面的打开(将.MainActivity中的代码,挪到.SecondActivity中)
<activity android:name=".MainActivity"> </activity> <activity android:name=".SecondActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
首先是权限依赖导入
compile 'org.greenrobot:eventbus:3.0.0'
1.创建SecondActivity类,并布局
activity_second布局(获取数据界面)
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_second" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.eightgroup.eventbas.SecondActivity"> <Button android:id="@+id/btn_shou" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="接收数据"/> <LinearLayout android:layout_marginTop="20dp" android:layout_below="@+id/btn_shou" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/name" android:layout_weight="1"/> <TextView android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/pass" android:layout_weight="1"/> </LinearLayout></RelativeLayout>
然后是activity_main的布局(登录界面)
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.eightgroup.eventbas.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:ems="10" android:id="@+id/editText" android:hint="请输入用户名"/> <EditText android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberPassword" android:ems="10" android:layout_below="@+id/editText" android:id="@+id/editText2" android:hint="请输入密码"/> <Button android:layout_marginTop="50dp" android:text="Button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/editText2" android:id="@+id/btn_send" /></RelativeLayout>创建一个MessageEvent外部类
public class MessageEvent { public final String name; public final String pass; public MessageEvent(String name, String pass) { this.name = name; this.pass = pass; }}
.SecondActivity类
记住一定要写上注册EventBus
EventBus.getDefault().register(SecondActivity.this);完整代码
public class SecondActivity extends AppCompatActivity { private TextView name,pass; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); //注册EventBus EventBus.getDefault().register(SecondActivity.this); name = (TextView) findViewById(R.id.name); pass = (TextView) findViewById(R.id.pass); button = (Button) findViewById(R.id.btn_shou); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startActivity(new Intent(SecondActivity.this, MainActivity.class)); } }); } @Subscribe public void onUserEvent(MessageEvent event) { name.setText("用户名:" + event.name); pass.setText("密码:" + event.pass); } @Override protected void onDestroy() { //取消注册事件 EventBus.getDefault().unregister(SecondActivity.this); super.onDestroy(); } }MainActivity类
public class MainActivity extends AppCompatActivity { private Button button; private EditText name,pass; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.btn_send); name = (EditText) findViewById(R.id.editText); pass = (EditText) findViewById(R.id.editText2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String userName=""; String userPass=""; if(!TextUtils.isEmpty(name.getText().toString())){ userName = name.getText().toString(); userPass = pass.getText().toString(); MessageEvent event = new MessageEvent(userName,userPass); EventBus.getDefault().post(event); }else { //不再发送事件Event Toast.makeText(MainActivity.this,"登录失败",Toast.LENGTH_SHORT).show(); } finish(); } }); } }
阅读全文
0 0
- Event的简单实现登录相互传递数据
- android ListActivity或listview相互数据传递的实现方法
- 用接口实现模拟计算机和U盘的数据之间的相互传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 使用storyboard实现页面跳转,简单的数据传递
- 简单的登录实现
- 简单的三方登录SDK示例,Android Activity之间数据的传递
- 页面间传递数据的方式,使用Event
- Android传递简单的数据
- Socket的简单数据传递
- C++Event机制的简单实现
- 半年股价飙升50% 联发科的U型逆转
- ubuntu14.04启动盘黑屏问题
- AI | 刘强东谈京东AI布局:春节后重型无人机上飞测试 载重过吨
- 揭秘深圳智能音箱地下江湖 千家小厂命悬一线!
- 图解Javascript this指向什么
- Event的简单实现登录相互传递数据
- 常用权限和依赖
- synchronized
- MFC写的一个ping程序
- Atlas的安装配置及MySQL主从复制配置,两者连接使用
- python: reverse & reversed 函数
- 正则应用之切分数字及文本
- 解决Eclipse的web项目中右击没有browse deployment location选项
- java 日期类总结