Android 编辑时间项内容:使用 Intent 传递数据并更新视图
Android 编辑时间项内容:使用 Intent 传递数据并更新视图
本文将详细介绍如何使用 Intent 在 Android 应用中传递时间项数据,并通过 EditActivity 编辑内容,最后将修改后的数据返回给 MainActivity 并更新视图。
1. 弹出对话框或跳转到编辑界面
private void showEditDialog(DateText dateText) {
Intent intent = new Intent(MainActivity.this, EditActivity.class);
intent.putExtra('dateText', dateText);
startActivityForResult(intent, 1);
}
在这个修改后的代码中,我使用 Intent 来跳转到 EditActivity,并将点击的时间项的内容传递给 EditActivity。
2. 在 EditActivity 中显示和编辑时间项内容
public class EditActivity extends AppCompatActivity {
private EditText etContent;
private Button btnSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
etContent = findViewById(R.id.et_content);
btnSave = findViewById(R.id.btn_save);
// 获取传递过来的时间项内容
DateText dateText = getIntent().getParcelableExtra('dateText');
if (dateText != null) {
etContent.setText(dateText.getContent());
}
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 获取用户编辑后的内容
String content = etContent.getText().toString();
// 将编辑后的内容返回给 MainActivity
Intent intent = new Intent();
dateText.setContent(content);
intent.putExtra('dateText', dateText);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
在这个修改后的代码中,我首先获取传递过来的时间项内容,并将其显示在 EditText 中。然后,当用户点击保存按钮时,我将获取用户编辑后的内容,并将其通过 Intent 返回给 MainActivity。
3. 在 MainActivity 中处理返回的结果并更新视图
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
DateText dateText = data.getParcelableExtra('dateText');
// 更新时间项的内容
updateDateText(dateText);
}
}
private void updateDateText(DateText dateText) {
// 根据时间项的id找到对应的View,并更新内容
View view = findViewById(dateText.getId());
TextView tvContent = view.findViewById(R.id.tv_content);
tvContent.setText(dateText.getContent());
}
在这个修改后的代码中,我首先判断返回结果的 requestCode 和 resultCode 是否正确,然后从 Intent 中获取编辑后的时间项内容,并调用 updateDateText 方法来更新对应的时间项的内容。
希望这次的回答能够满足你的需求。如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/TkM 著作权归作者所有。请勿转载和采集!