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
原创粉丝点击