Android 如何将类对象传递给活动
我有一个Android 如何将类对象传递给活动,android,android-intent,android-fragments,android-activity,Android,Android Intent,Android Fragments,Android Activity,我有一个BarcodeReaderActivity我将在几个活动中开始,在我开始这个活动之前,我想为这个BarcodeReaderActivity传递一个destination活动类,所以在阅读二维码之后,我想让它以意图打开destination活动 我的第一个解决方案是将目标类名称作为字符串传递,并在BarcodeReaderActivity中使用开关大小写,然后为该类编写特定的Intent 我还尝试先将条形码阅读器创建为片段,但当我启动目标活动,然后删除片段时,它会在短时间内显示以前的活动,
BarcodeReaderActivity
我将在几个活动中开始,在我开始这个活动之前,我想为这个BarcodeReaderActivity
传递一个destination活动
类,所以在阅读二维码之后,我想让它以意图打开destination活动
我的第一个解决方案是将目标类名称作为字符串传递,并在BarcodeReaderActivity
中使用开关大小写,然后为该类编写特定的Intent
我还尝试先将条形码阅读器
创建为片段
,但当我启动目标活动
,然后删除片段
时,它会在短时间内显示以前的活动
,但我不希望发生这种情况
如果您知道更好的方法,我想从您那里得到一些建议。您可以在Android活动之间传递对象。最好的方法是从Android SDK实现接口。之后,您可以使用putExtra(“parcelName”,object)
方法将对象添加到负责启动新活动的意图中。要在其他活动中读取Parcelable对象,您可以使用以下代码片段:
getIntent().getExtras().getParcelable(“parcelName”)
我在这里找到了一个很好的例子来表达这个想法:
此外,如果您想避免大量样板代码,可以使用library,它可以为您生成一些可重复的内容。您可以构建所需的Intent
外部BarcodeReaderActivity
并将其作为额外内容传递。如果需要,您可以稍后在BarcodeReaderActivity
中更改此目的。
大概是这样的:
Intent finalIntent = new Intent( context, FinalActivity.class );
Intent barcodeIntent = new Intent( context, BarcodeReaderActivity.class );
barcodeIntent.putExtra( "finalintentkey", finalIntent);
context.startActivity(barcodeIntent);
然后在BarcodeReaderActivity
中检索意图(并根据需要修改):
Intent finalIntent = getIntent().getParcelableExtra( "finalintentkey" );
// if needed modify intent here
finalIntent.addExtra( "somekey", someneededvalue );
startActivity( finalIntent );
// BarcodeReaderActivity can be finished now
finish();