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 方法来更新对应的时间项的内容。

希望这次的回答能够满足你的需求。如果还有其他问题,请随时提问。

Android 编辑时间项内容:使用 Intent 传递数据并更新视图

原文地址: https://www.cveoy.top/t/topic/TkM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录