从一个屏幕跳到另一个屏幕,一个activity跳转到另一个activity,Intent类用于组件之间传递数据和跳转,组件包括不仅activity。
package com.sxt.day04_01; import com.sxt.day04_01.entity.User; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText; public class LoginActivity extends Activity { EditText metId,metPwd; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initView();
setListener();
} private void setListener() {
setExitClickListener();//设置退出按钮的监听器
setLoginClickListener();//设置登陆按钮的监听器
} //设置登陆按钮的监听器
private void setLoginClickListener() {
findViewById(R.id.btnLogin).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String id=metId.getText().toString();
if(TextUtils.isEmpty(id)){
metId.setError("编号不能为空");
return ;
}
String pwd=metPwd.getText().toString();
if(TextUtils.isEmpty(pwd)){
metPwd.setError("密码不能为空");
return ;
}
Intent intent=new Intent(LoginActivity.this, MainActivity.class);
//降低了2个Activity的耦合度(紧密程度),java中2个类之间的关系要少,修改一个类则另一个类影响很少,
intent.putExtra("id", id);//健必须是string,值可以是任意类型
intent.putExtra("password", pwd);
User user=new User(Integer.parseInt(id), pwd);
intent.putExtra("user", user);//user要实现Serializable接口
startActivity(intent);
}
});
} //设置退出按钮的监听器
private void setExitClickListener() {
findViewById(R.id.btnExit).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
} private void initView() {
metId=(EditText) findViewById(R.id.etId);//new出了对象
metPwd=(EditText) findViewById(R.id.etPwd);
} }
package com.sxt.day04_01; import com.sxt.day04_01.entity.User; import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent=getIntent();//获取上一个activity传递的intent
String id=intent.getStringExtra("id");//获取string类型的数据,getIntExtra获取int类型数据
String pwd=intent.getStringExtra("password");
User user=(User) intent.getSerializableExtra("user");
Log.i("main","id="+id+",password:"+pwd);
Log.i("main",user.toString());
} }