2个XML布局
- 布局构思:总体是一个垂直的线性布局
- 再往里包含2个水平(横向)排列的线性布局
- 一个水平的线性布局里面放个发送的文本框提示,还需要放一个输入框通过Intent发到另外一个activity
- 另外一个水平线性布局里面放个接收的文本框提示,还需要放一个输入框通过Intent发到之前的activity
- 2个XML里最下面都是一个确认按钮
Mainactivity1.java
-
主要是获取需要发送信息的输入框、确认发送的按钮以及接收的文本框控件
-
然后对按钮监听,并且使用Intent的putExtra设置传递键值对, 再使用startActivityForResult方法(为了一个结果)进行传输
-
此处Intent的putExtra的"001"只是个字符串传输标记,“目的地”(此处为Mainactivity2.java)接收的时候才需要用到它来接收,建议自定义方便理解。例如:“发送内容”
-
"001"后面的sent1.getText().toString()则是需要传的字符串的值
-
Intent intent=new Intent(getApplicationContext(),Main2Activity.class);这句是实现Activity之间的跳转
-
startActivityForResult方法中的第二个参数0x01可以是自定义的,但是必须是一个整数,需要作为后面传递回来的接收判断条件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sent1 = (EditText) findViewById(R.id.sent1);
surebtn = (Button) findViewById(R.id.sure);
rece1 = (TextView) findViewById(R.id.receive1);
surebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getApplicationContext(),Main2Activity.class);
intent.putExtra("001",sent1.getText().toString());
startActivityForResult(intent,0x01);
}
});
}
- 并且重写onActivityResult方法(在本活动中的结果),主要是为了接收传回来的信息
- 此处data是Intent创建的对象
- 0x01是Mainactivity2接收Mainactivity1的值再反馈回来的信息,是一 一对应的
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0x01){
String extra = data.getStringExtra("002");
rece1.setText(extra);
}
}
Mainactivity2.java
- 获取控件是必不可少的操作,类似Mainactivity1.java
- getIntent().getStringExtra(“001”)实现取"001"内传输来的数据
- setResult(RESULT_OK,intent);发送返回的结果(也是传值,类似一问一答里面的回应)
- 调用finish()回到1的界面。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
rece2 = (TextView) findViewById(R.id.receive2);
rece2.setText(getIntent().getStringExtra("001"));
sent2 = (EditText) findViewById(R.id.sent2);
backbtn = (Button) findViewById(R.id.backto1btn);
backbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(getApplicationContext(),MainActivity.class);
intent.putExtra("002",sent2.getText().toString());
setResult(RESULT_OK,intent);
finish();
}
});
}