如何使用活动结果来浏览android中的多个活动

时间:2014-05-08 06:57:45

标签: android android-intent start-activity onactivityresult

我已经创建了一个表单,我有一个名为“CategoryID”的textView字段,现在当用户点击它时,它将转到categoryListActivity,在该活动中,列表中包含类别,在该列表中的一些类别有子类别和一些没有,所以从那我想要它的名字和Id,但我的问题是如果类别可能有子类别如何发送名称和ID?

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

categoryID(TextView) - > onClick - > goto“CategoryActivity” - >如果具有子类别的“类别”它将转到下一个活动“子类别”,否则它将重定向到具有“类别名称”和“ID”的表单,如果不是它将转到“SubCategoryActivity”并且从那里列表将有我的项目将点击将发送到表单字段“categoryName(TextView)”。请帮我解决此问题。

1 个答案:

答案 0 :(得分:2)

您想使用Intent.FLAG_ACTIVITY_FORWARD_RESULT来实现这一目标。此标志允许活动委派将结果返回给另一个活动的责任。

MainActivity使用CategoryActivity启动startActivityForResult()。如果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()之前设置结果。当MainActivity调用onActivityResult()时,该结果将返回到SubcategoryActivity中的finish()