SearchQueryListener不返回结果

问题描述 投票:0回答:1

我已经使用ListView和JSON制作了新闻应用程序。我想向我的应用添加搜索功能。因此,IhAave已经完成了在操作栏中显示我的搜索栏的操作。问题是,每当我单击“搜索”时,我的ListView结果就会消失,并且我搜索的单词不会产生任何结果。我正在发布我的片段之一的代码。 (我已经通过设置日志消息进行了检查,搜索栏在日志消息中可以看到。但是在列表视图中,它没有显示结果。也许我的适配器为空?或者我在某个地方缺少列表视图。请帮帮我。>

这里是代码。

public class Uspolitics extends Fragment implements LoaderManager.LoaderCallbacks<List<News>> {


private static final String LOG_TAG = Uspolitics.class.getSimpleName();


private static final String NEWS_API = "https://newsapi.org/v2/top-headlines?country=us&apiKey=6a6f7c77766442acb20c86157a152131";
private NewsAdapter mAdapter;
private static final int EARTHQUAKE_LOADER_ID = 1;
private TextView mEmptyStateTextView;
private ProgressBar progressSpinner;
private String mUrl;

public Uspolitics() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment

    View rootView = inflater.inflate(R.layout.activity_all, container, false);

    setHasOptionsMenu(true);

    mEmptyStateTextView = rootView.findViewById(R.id.empty_view);
    final ListView listView = (ListView) rootView.findViewById(R.id.list);
    listView.setEmptyView(mEmptyStateTextView);

    mAdapter = new NewsAdapter(getActivity(), new ArrayList<News>());


    listView.setAdapter(mAdapter);


    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            News currentNews = mAdapter.getItem(position);

            Uri uriweb = Uri.parse(currentNews.getURL());
            Intent webIntent = new Intent(Intent.ACTION_VIEW, uriweb);
            startActivity(webIntent);


        }
    });


    progressSpinner = rootView.findViewById(R.id.loading_indicator);
    // Indeterminate progress bar type
    progressSpinner.setIndeterminate(true);


    ConnectivityManager connMgr = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);

    if (getActivity() != null) {

        if (connMgr != null) {
            // Get details on the currently active default data network
            NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected()) {
                LoaderManager loaderManager = getActivity().getSupportLoaderManager();
                loaderManager.initLoader(EARTHQUAKE_LOADER_ID, null, this);


            } else {


                progressSpinner.setVisibility(ProgressBar.GONE);

                mEmptyStateTextView.setText("NO INTERNET CONNECTION");
            }


        }
    }


    return rootView;

}


@Override
public Loader<List<News>> onCreateLoader(int i, Bundle bundle) {


    return new PoliticsLoader(getContext(), NEWS_API);

}

@Override
public void onLoadFinished(Loader<List<News>> loader, List<News> news) {

    progressSpinner.setVisibility(ProgressBar.GONE);
    mAdapter.clear();
    if (news != null && !news.isEmpty()) {
        mAdapter.addAll(news);
    }

}

@Override
public void onLoaderReset(Loader<List<News>> loader) {
    mAdapter.clear();


}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

    // Inflate the options menu from XML
    MenuInflater inflaters = getActivity().getMenuInflater();
    inflater.inflate(R.menu.dashboard, menu);

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);



    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {

            mAdapter.getFilter().filter(s); // **I think this is issue** 
            return true;

        }

        @Override
        public boolean onQueryTextChange(String s) {
            return true;
        }
    });
    super.onCreateOptionsMenu(menu, inflater);
}

}

我已经使用ListView和JSON制作了新闻应用程序。我想向我的应用添加搜索功能。因此,IhAave已经完成了在操作栏中显示我的搜索栏的操作。问题是每当我单击...

android json android-actionbar searchview
1个回答
0
投票

一旦单击提交按钮,您需要再次请求API。

© www.soinside.com 2019 - 2024. All rights reserved.