gpt4 book ai didi

android - 将搜索数据传递给 Searchable Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:43 25 4
gpt4 key购买 nike

我有一个包含 2 个 fragment 的主要 Activity 。主要 Activity 有一个 SearchView在操作栏中。这两个 fragment 都有一个包含大量字符串的列表,List<String> .

流程是:

User enters Fragment I --> Selects a string (lets say Selection1) --> Based on Selection1 a list of strings is populated in the second fragment --> Here the user selects a second String ---> Processing based on these two strings.

现在由于两个 fragment 都包含大量字符串,用户在 SearchView 中输入查询, 它过滤列表并将其缩小为显示在 SearchableActivity 中的较小列表.

现在的问题是 SearchableActivity 是如何实现的?获得这两个 List<String>根据查询过滤它们并向用户显示简化列表。

目前我所做的被覆盖了onSearchRequested并将数据传递为

    @Override
public boolean onSearchRequested()
{
Bundle appData = new Bundle();
appData.putString(FRAGMENT_ID, "Fragment_A");
appData.putStringArrayList(SEARCH_LIST, searchList);
startSearch(null, false, appData, false);
return true;
}

是否有更好的方法或标准方法来处理此问题,即允许数据基于我的 MainActivity 的实现至 SearchableActivity

编辑:添加代码。显示如何在 Fragment 中设置数据. onDataReceivedHttpManager 调用接收数据。

@Override
public void onDataReceived(String type,final Object object)
{
switch(type)
{
case PopItConstants.UPDATE_LIST:
getActivity().runOnUiThread(new Runnable() {
@Override
public void run()
{
updateCinemaList((List<String>) object);
}
});
break;
}
}

public void updateDataList(List<String> data)
{
this.dataList = data;
spinner.setVisibility(View.GONE);
mAdapter.updateList(dataList);
}

最佳答案

几分钟前我刚刚在 how can I send a List into another activity in Android Studio 回答了一个类似的问题

我鼓励您重新考虑在 Activity 和 Fragment 之间简单传递数据的模式。考虑为您的应用程序创建一个或多个数据模型(非 Android 类),并将这些模型提供给需要它们的 Android 类( Activity 、 fragment 等)。

从您的 Activity 和 Fragments 中删除所有数据存储和操作代码,并将其放入模型中。

关于android - 将搜索数据传递给 Searchable Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32874136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com