假设您正在显示电影列表。
您正在提供过滤器(作为单独的活动) (过滤器窗口可以叠加在电影列表的顶部(不知道我在android中如何做到这一点)
现在,用户在过滤器屏幕中选择过滤器,并希望应用过滤器。
过滤器数据应从过滤器活动转移到上一个活动(显示电影列表)。
如何在这种情况下传递数据?
我应该使用某种事件系统(例如ios中的NotificationCenter)吗?
或者我应该使用某种形式的startActivity
,即使活动已经开始并等待。
答案 0 :(得分:1)
如果您想打开特定的Activity
以便在之前的Activity
中获得结果,那么根据我的最佳做法是使用startActivityForResult(intent,requestCode)
而不是startActivity(intent)
。
覆盖以下方法是您希望接收数据的第一个活动
onActivityResult(int requestCode, int resultCode, Intent data)
为了在第一个活动中获得结果,应在第二个活动中触发以下代码
Intent resultIntent = new Intent();
resultIntent.putExtra("data", yourData); //make 'yourData' Serializable if a POJO
setResult(Activity.RESULT_OK, resultIntent);
finish();
在此代码触发后,您将在第一个活动中的onActivityResult()
中收到回调,其中您使用startActivityForResult()
调用了extars
。希望这可以帮助。 GL
答案 1 :(得分:0)
实施Runnable
界面,并在run
方法中添加您希望执行的UI更改。然后实例化并使用runOnUiThread将其发送到主UIThread。然后,您的更改将在主要活动(您有电影列表)中进行。