我做了一个表格,我有一个名为“ CategoryID”的textView字段,现在当用户单击它时,它将转到一个categoryListActivity,在该活动中,有类别的List是它们,在那个List中有一些具有子类别的类别和因此,我想要它的名称和ID,但是我的问题是,如果类别可能具有子类别,该如何发送名称和ID?
我的基本逻辑(我需要的是):
categoryID(TextView)-> onClick->转到“ CategoryActivity”->如果“ category”具有子类别,它将转到下一个活动“ subcategory”,否则将重定向到带有“ category name”和“ ID”的表单将转到“ SubCategoryActivity”,然后从列表中找到我要单击的项目,该项目将发送到表单字段“ categoryName(TextView)”。请帮助我解决此问题。
最佳答案
您想使用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()
。