Android笔记
——传值
【若对该知识点有更多想了解的,欢迎私信博主~~】
传值:Intent and Bundle
Activity与Activity之间
方式一:intent
//第一个界面
EditText etx1;
TextView txt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etx1=findViewById(R.id.etx1);
txt1=findViewById(R.id.txt1);
findViewById(R.id.btn3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建Intent对象
//第一个参数是当前Activity,第二个参数是要打开的Activity
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
//向intent里放入值(第一个参数:给传的值一个名称,用于接收;第二个参数:需要传的值)
intent.putExtra("word",etx1.getText().toString());
//启动intent对象,打开Activity
startActivity(intent);
}
});
}
//新打开的Activity
EditText etx2;
TextView txt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
etx2=findViewById(R.id.etx2);
txt2=findViewById(R.id.txt2);
//创建Intent对象,getIntent()方法是用于连接上一个Activity
Intent intent=getIntent();
//getStringExtra()用于接收传进来的String值,参数为上一个Activity传进此值的name
String word=intent.getStringExtra("word");
txt2.setText(word);
}
方式二:intent+bundle
//第一个界面
EditText etx1;
TextView txt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etx1=findViewById(R.id.etx1);
txt1=findViewById(R.id.txt1);
findViewById(R.id.btn3).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建Intent对象
//第一个参数是当前Activity,第二个参数是要打开的Activity
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
//创建Bundle对象
Bundle bundle=new Bundle();
//向bundle里放入值(第一个参数:给传的值一个名称,用于接收;第二个参数:需要传的值)
bundle.putString("word",etx1.getText().toString());
//通过putExtras()方法传入bundle(注意:此时为putExtras()方法,不是putExtra()方法)
intent.putExtras(bundle);
//启动intent对象,打开Activity
startActivity(intent);
}
});
}
//新打开的Activity
EditText etx2;
TextView txt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
etx2=findViewById(R.id.etx2);
txt2=findViewById(R.id.txt2);
//创建Intent对象,getIntent()方法是用于连接上一个Activity
Intent intent=getIntent();
//创建Bundle对象,将存入intent对象里的bundle取出来
Bundle bundle=intent.getExtras();
//getString()用于接收传进来的String值,参数为bundle传进此值的name
String word=bundle.getString("word");
txt2.setText(word);
}