什么是Intent
Intent可以理解为信使(意图)
由Intent来协助完成Android各个组件之间的通讯
Intent实现页面之间的跳转
1>startActivity(intent)
2>startActivityForResult(intent,requestCode)
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data)
第二种启动方式可以返回结果
代码
FirstActivity.java
public class FirstActivity extends AppCompatActivity {
private Button bt1;
private Button bt2;
private TextView tv;
private Context context=FirstActivity.this;
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
bt1 = (Button) findViewById(R.id.button_first);
bt2 = (Button) findViewById(R.id.button_second);
tv = (TextView) findViewById(R.id.textView);
bt1.setonClickListener(new View.onClickListener() {
public void onClick(View view) {
//Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
Intent intent = new Intent(context,SecondActivity.class);
startActivity(intent);
}
});
bt2.setonClickListener(new View.onClickListener() {
public void onClick(View view) {
Intent intent = new Intent(context,SecondActivity.class);
startActivityForResult(intent,1);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == 3){
String value = data.getStringExtra("data");
tv.setText(value);
}
}
}
SecondActivity.java
public class SecondActivity extends Activity {
private Button bt1;
private String value="回传数据";
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
bt1 = (Button) findViewById(R.id.button);
bt1.setonClickListener(new View.onClickListener() {
public void onClick(View view) {
Intent data = new Intent();//使用空参就行,因为我们不跳转
data.putExtra("data",value);
setResult(3,data);
finish();//销毁本页面,也就是返回上一页面
}
});
}
}
first_layout.xml
second_layout.xml
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



