android - 如何在android中使用 Activity 结果来经历多个 Activity

标签 android android-intent start-activity onactivityresult

我制作了一个表单,其中有一个名为“CategoryID”的 TextView 字段,现在当用户单击它时,它将转到一个categoryListActivity,在该 Activity 中,一个包含类别的列表就是它们,在该列表中列出了一些类别有子类别,有些没有,所以我想要它的名称和 ID,但我的问题是如果类别可能有子类别,如何发送名称和 ID?

我的基本逻辑(我需要的是):

categoryID(TextView) ->onClick ->转到“CategoryActivity”-->如果“category”有子类别,它将转到下一个 Activity “subcategory”,否则它将重定向到带有“类别名称”和“ID”的表单如果没有,它将转到“SubCategoryActivity”,从那里会出现一个列表,我将单击的项目将发送到表单字段“categoryName(TextView)”。请帮我解决这个问题。

最佳答案

您希望使用 Intent.FLAG_ACTIVITY_FORWARD_RESULT 来实现此目的。此标志允许 Activity 将返回结果的责任委托(delegate)给另一个 Activity 。

MainActivity 使用 startActivityForResult() 启动 CategoryActivity。如果CategoryActivity意识到用户需要选择一个子类别,那么它会像这样启动SubcategoryActivity:

    Intent intent = new Intent(this, SubcategoryActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
    intent.putExtra("category", category); // Pass the chosen category to the next activity
    startActivity(intent);
    // This activity can finish now. SubcategoryActivity will return the result
    finish();

请注意,SubcategoryActivity 是使用 startActivity() 启动的,而不是 startActivityForResult()。但是,SubcategoryActivity 应该在调用 finish() 之前设置一个结果。当 SubcategoryActivity 调用 finish() 时,该结果将在 onActivityResult() 中返回到 MainActivity

关于android - 如何在android中使用 Activity 结果来经历多个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23534864/

相关文章:

android - 如何防止丢失的、未使用的注释类使我的程序崩溃?

java - Intent 并不总是按预期工作

android - 从通知启动时防止重新创建 Activity Activity

java - 从自定义类启动Activity

安卓| StartActivityForResult 不会做任何事情

java - 使用 GSON 进行通用 Parcelable——如何检索类类型

java - 我放入 res/drawable 文件夹中的 PNG 将不会显示在代码中

android - 为什么 v4 fragment 没有 startActivity(Intent, Bundle)?

java - 如何通过另一个 Activity 杀死一个服务?

android - 调用 startActivityForResult() 时出现空指针异常