1.根据上次的监听器我们改进,利用意图传递数据。
在LoginActivity创建显式意图,利用意图携带数据,按照意图启动目标组件.
代码如下
Toast.makeText(LoginActivity.this,"恭喜,用户名与密码成功",Toast.LENGTH_SHORT).show();
Intent intent =new Intent(LoginActivity.this,MainActivity.class);
intent.putExtra("username",strUsername);
intent.putExtra("password",strPassword);
startActivity(intent);
2.接收登录界面通过意图传递的数据并显示在标签里代码如下
public class MainActivity extends AppCompatActivity {
private TextView tvMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvMessage= findViewById(R.id.tvMessage);
Intent intent =getIntent();
if(intent==null){
String username = intent.getStringExtra("username");
String password = intent.getStringExtra("password");
String message="登录成功!\n用户:"+username+"\n密码"+password;
tvMessage.setText(message);
}
}
}
修改LoginActivity使用Bundle对象封装数据
创建用户类代码如下
package com.example.myapplication;
import java.io.Serializable;
public class User implements Serializable {
private String username;
private String password;
public User() {
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在LoginAcvitiy修改界面如图
运行代码是出现找不带设备运行,可以能adb没有连接,我没有找到,便恢复了默认配置,后面重新运行时就可以了。
登录成功后并没有显示用户界面,这个问题还没有解决,可能是startActivity(intent)没有成功。今天就学习到这里,明天解决这个问题。