【问题标题】:Issue in Searching in Dialog Fragments在对话框片段中搜索的问题
【发布时间】:2016-09-06 05:56:20
【问题描述】:

搜索选项在对话框片段中无法正常工作。尽管我在活动中的其他应用程序中使用过相同的选项。我正在使用 Recyclerview。

这是我在自定义适配器中的代码:

public void filter(final String text) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            filterlist.clear();
            if (TextUtils.isEmpty(text)) {

                filterlist.addAll(bank);

            } else {
                for (Employee item : bank) {
                    if (item.getBank_name().toLowerCase().contains(text.toLowerCase())) {
                        // Adding Matched items
                        filterlist.add(item);

                    }
                }
            }

            ((Activity) context).runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    notifyDataSetChanged();

                }
            });

        }
    }).start();
}

错误在((Activity) context).runOnUiThread(new Runnable())这一行

Logcat:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.Activity.runOnUiThread(java.lang.Runnable)' on a null object reference
                                                                             at com.example.abhishek.project.CustomAdapter$1.run(CustomAdapter.java:75)

回收站视图:

@Override
public boolean onQueryTextSubmit(String query) {
    return false;
}

@Override
public boolean onQueryTextChange(String newText) {
    try{
        if(TextUtils.isEmpty(newText)){
            ca.filter("");
        }
        else{
            ca.filter(newText.toString());
        }

private void setupSearchView() {
    search.setIconifiedByDefault(false);
    search.setOnQueryTextListener(this);
    search.setSubmitButtonEnabled(true);
    search.setQueryHint("Search Here");

}

【问题讨论】:

标签: android android-recyclerview android-dialogfragment searchview


【解决方案1】:

您在DialogFragment 中获得了这样的Activity 上下文:

getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
        notifyDataSetChanged();
    }
});

【讨论】:

  • 是的,但 getActivity 在 CustomAdapter 中不起作用,我希望在 Custom Adapter 中使用它
  • 你从哪里传递你的context你能发布那个代码吗?
  • Context 传入 CustomAdapter 并且已经发布,方法过滤器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多