在Android中实施搜索过滤器

时间:2017-07-25 13:34:05

标签: android android-activity

假设您正在显示电影列表。

您正在提供过滤器(作为单独的活动) (过滤器窗口可以叠加在电影列表的顶部(不知道我在android中如何做到这一点)

现在,用户在过滤器屏幕中选择过滤器,并希望应用过滤器。

过滤器数据应从过滤器活动转移到上一个活动(显示电影列表)。

如何在这种情况下传递数据?

我应该使用某种事件系统(例如ios中的NotificationCenter)吗? 或者我应该使用某种形式的startActivity,即使活动已经开始并等待。

2 个答案:

答案 0 :(得分:1)

  1. 如果您想打开特定的Activity以便在之前的Activity中获得结果,那么根据我的最佳做法是使用startActivityForResult(intent,requestCode)而不是startActivity(intent)

  2. 覆盖以下方法是您希望接收数据的第一个活动 onActivityResult(int requestCode, int resultCode, Intent data)

  3. 为了在第一个活动中获得结果,应在第二个活动中触发以下代码

            Intent resultIntent = new Intent();
            resultIntent.putExtra("data", yourData); //make 'yourData' Serializable if a POJO
            setResult(Activity.RESULT_OK, resultIntent);
            finish();
    
  4. 在此代码触发后,您将在第一个活动中的onActivityResult()中收到回调,其中您使用startActivityForResult()调用了extars。希望这可以帮助。 GL

答案 1 :(得分:0)

实施Runnable界面,并在run方法中添加您希望执行的UI更改。然后实例化并使用runOnUiThread将其发送到主UIThread。然后,您的更改将在主要活动(您有电影列表)中进行。

how to use runOnUiThread的示例。