从一个屏幕跳到另一个屏幕,一个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()); } }