android如何利用intent发送、接收、返回数据,请举例说明
时间: 2023-12-17 18:05:00 浏览: 37
在Android开发中,我们可以使用Intent实现Activity之间的数据传递。下面是一个简单的例子,演示如何使用Intent发送、接收和返回数据。
首先,在发送方的Activity中,我们定义一个按钮,并在按钮的点击事件中使用Intent发送数据:
```java
public class SenderActivity extends AppCompatActivity {
private static final int REQUEST_CODE = 1;
private EditText mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sender);
mEditText = findViewById(R.id.edit_text);
Button sendBtn = findViewById(R.id.send_button);
sendBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = mEditText.getText().toString();
Intent intent = new Intent(SenderActivity.this, ReceiverActivity.class);
intent.putExtra("data", data);
startActivityForResult(intent, REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String returnedData = data.getStringExtra("returned_data");
Toast.makeText(this, "Returned data: " + returnedData, Toast.LENGTH_SHORT).show();
}
}
}
```
在上面的代码中,我们使用了一个EditText来获取用户输入的数据。当用户点击发送按钮时,我们构造了一个Intent并将数据添加到Intent中。接着,我们调用startActivityForResult方法启动另一个Activity(即接收方的Activity)。
在接收方的Activity中,我们获取通过Intent传递过来的数据,并在返回数据时将数据添加到Intent中:
```java
public class ReceiverActivity extends AppCompatActivity {
private EditText mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receiver);
mEditText = findViewById(R.id.edit_text);
String data = getIntent().getStringExtra("data");
mEditText.setText(data);
Button returnBtn = findViewById(R.id.return_button);
returnBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String returnedData = mEditText.getText().toString();
Intent intent = new Intent();
intent.putExtra("returned_data", returnedData);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
```
在上面的代码中,我们首先获取从发送方传递过来的数据,并将其显示在EditText中。接着,我们定义了一个按钮,并在按钮的点击事件中构造了一个Intent,将返回的数据添加到Intent中,并调用setResult方法返回结果。最后,我们调用finish方法结束当前Activity。
在发送方的Activity中,我们重写了onActivityResult方法,在其中获取返回的数据并显示一个Toast提示。
这就是一个简单的例子,演示了如何使用Intent实现Activity之间的数据传递。