Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行搜索查询时出现致命异常_Java_Android_Searchview - Fatal编程技术网

Java 执行搜索查询时出现致命异常

Java 执行搜索查询时出现致命异常,java,android,searchview,Java,Android,Searchview,我有一个片段,在片段内部,我刚刚添加了一个searchView和ListView,并尝试执行SearcQuery,但每次都无法获得所需的结果我在searchView中键入任何内容我的应用程序正在崩溃这就是我实现searchView的方式- Search_View.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(Strin

我有一个片段,在片段内部,我刚刚添加了一个searchView和ListView,并尝试执行SearcQuery,但每次都无法获得所需的结果我在searchView中键入任何内容我的应用程序正在崩溃这就是我实现searchView的方式-

Search_View.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String Text) {
        notesAdapter.getFilter().filter(Text);
        return true;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        notesAdapter.getFilter().filter(newText);
        return true;

    }
});
这就是我所犯的错误-

01-21 22:53:29.995 1676-1836/? E/bst_gps: bstgps: failed to open device. err: 2.
    01-21 22:53:31.535 6763-6763/? E/InputEventSender: Exception dispatching finished signal.
    01-21 22:53:31.535 6763-6763/? E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
    01-21 22:53:31.545 6763-6763/? E/MessageQueue-JNI: java.lang.NullPointerException
    at pb.myapp.TabFragment2$3.onQueryTextChange(TabFragment2.java:176)
    at android.widget.SearchView.onTextChanged(SearchView.java:1153)
    at android.widget.SearchView.access$2000(SearchView.java:92)
    at android.widget.SearchView$11.onTextChanged(SearchView.java:1638)
    at android.widget.TextView.sendOnTextChanged(TextView.java:7408)
    at android.widget.TextView.handleTextChanged(TextView.java:7467)
    at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:9183)
    at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:962)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:496)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:435)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:30)
    at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:223)
    at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:136)
    at android.widget.TextView.doKeyDown(TextView.java:5532)
    at android.widget.TextView.onKeyDown(TextView.java:5343)
    at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:716)
    at android.view.KeyEvent.dispatch(KeyEvent.java:2640)
    at android.view.View.dispatchKeyEvent(View.java:7696)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.support.v4.view.ViewPager.dispatchKeyEvent(ViewPager.java:2567)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1408)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:2035)
    at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1505)
    at android.app.Activity.dispatchKeyEvent(Activity.java:2418)
    at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)
    at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:224)
    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1962)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558)
    at and
    01-21 22:53:31.545 6763-6763/? D/AndroidRuntime: Shutting down VM
    01-21 22:53:31.545 6763-6763/? W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa4d68b20)
    01-21 22:53:31.545 1880-1979/? D/BstCommandProcessor-Application: Application crash has been observed.
    01-21 22:53:31.545 1880-1979/? W/BstCommandProcessor-Application: in sendHttpRequest, requestType is of CRASH_APP type but one of the requiredInfo is NULL, crashedApp = com.bluestacks.BstCommandProcessor.BstCrashedAppInfo@528037b8
    01-21 22:53:31.545 1880-1979/? D/BstCommandProcessor-Application: in sendHttpRequest, request to send to (fqdn): http://10.0.2.2:2861/AppCrashedInfo
    data: {"packageName":"pb.myapp","shortPackageName":"pb.myapp","versionCode":1,"versionName":"1.0"}
    01-21 22:53:31.545 6763-6763/? D/AndroidRuntime: procName from cmdline: pb.pocketboard
    01-21 22:53:31.545 6763-6763/? E/AndroidRuntime: in writeCrashedAppName, pkgName :pb.pocketboard
    01-21 22:53:31.545 6763-6763/? D/AndroidRuntime: file written successfully with content: pb.pocketboard StringBuffer : ;pb.pocketboard
    01-21 22:53:31.555 6763-6763/? I/Process: Sending signal. PID: 6763 SIG: 9
    01-21 22:53:31.555 6763-6763/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: pb.myapp, PID: 6763
    java.lang.NullPointerException
    at pb.pocketboard.TabFragment2$3.onQueryTextChange(TabFragment2.java:176)
    at android.widget.SearchView.onTextChanged(SearchView.java:1153)
    at android.widget.SearchView.access$2000(SearchView.java:92)
    at android.widget.SearchView$11.onTextChanged(SearchView.java:1638)
    at android.widget.TextView.sendOnTextChanged(TextView.java:7408)
    at android.widget.TextView.handleTextChanged(TextView.java:7467)
    at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:9183)
    at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:962)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:496)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:435)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:30)
    at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:223)
    at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:136)
    at android.widget.TextView.doKeyDown(TextView.java:5532)
    at android.widget.TextView.onKeyDown(TextView.java:5343)
    at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:716)
    at android.view.KeyEvent.dispatch(KeyEvent.java:2640)
    at android.view.View.dispatchKeyEvent(View.java:7696)
我的全部代码:-

public class TabFragment2 extends Fragment {



ArrayList <String> notesObject;

ArrayAdapter<ParseObject> notesAdapter;
ArrayAdapter<String> CarsAdapter;
 ListView List_View;
SearchView Search_View;



SwipeRefreshLayout swipeToReload;




@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View view = inflater.inflate(R.layout.tab_fragment_2, container, false);


    List_View = (ListView) view.findViewById(R.id.notesList);
    Search_View = (SearchView)  view.findViewById(R.id.searchView);

    swipeToReload = (SwipeRefreshLayout)  view.findViewById(R.id.swipe_refresh_layout);






    ParseQuery<ParseObject> query = ParseQuery.getQuery("Notes");
    query.whereExists("Title");
    query.fromLocalDatastore();
    query.findInBackground(new FindCallback<ParseObject>() {

                               @Override
                               public void done(List<ParseObject> list,
                                                ParseException e) {

                                   if (e == null) {

                                       if (list.size() <= 0) {

                                           Toast.makeText(getActivity(), "No results", Toast.LENGTH_LONG).show();
                                       }

                                       ArrayList<String> notesArray = new ArrayList<String>();
                                       for (ParseObject j : list) {

                                           notesArray.add(j.getString("Title"));
                                       }

                                       ArrayAdapter notesAdapter = new  ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, notesArray);
                                       List_View.setAdapter(notesAdapter);
                                   } else {

                                       e.getMessage();
                                       Log.d("" + e.getMessage(), " errorr");
                                   }

                               }
                           }
    );



    swipeToReload.setOnRefreshListener(new  SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            Log.i("", "onRefresh called from SwipeRefreshLayout");


            ParseQuery<ParseObject> query = ParseQuery.getQuery("Notes");
            query.whereExists("Title");
            query.findInBackground(new FindCallback<ParseObject>() {

                                       @Override
                                       public void done(List<ParseObject> list,
                                                        ParseException e) {

                                           if (e == null) {


                                               try {

                                                   ParseObject.pinAll(list);

                                               } catch (Exception pinE) {

                                                    Toast.makeText(getActivity(), "Pinning Failed", Toast.LENGTH_LONG).show();

                                               }

                                               ArrayList<String> notesArray = new ArrayList<String>();
                                               for (ParseObject j : list) {

                                                   notesArray.add(j.getString("Title"));
                                               }

                                               ArrayAdapter notesAdapter = new  ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, notesArray);
                                                List_View.setAdapter(notesAdapter);

                                               swipeToReload.setRefreshing(false);
                                               notesAdapter.notifyDataSetChanged();
                                               Toast.makeText(getActivity(), "Refresh Done", Toast.LENGTH_LONG).show();


                                           } else {

                                               e.getMessage();
                                               Log.d("" + e.getMessage(), " errorr");
                                           }

                                       }
                                   }
            );


        }
    });



    Search_View.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

        @Override
        public boolean onQueryTextSubmit(String Text) {

            Log.d("tag","notesAdapter="+notesAdapter);
            notesAdapter.getFilter().filter(Text);

            return true;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

            Log.d("tag","notesAdapter="+notesAdapter);
            notesAdapter.getFilter().filter(newText);

            return true;

        }
    });

    return view;

}



 public  void getNotesFromServer(){


    ParseQuery<ParseObject> query = ParseQuery.getQuery("Notes");
    query.findInBackground(new FindCallback<ParseObject>() {

        @Override
        public void done(List<ParseObject> list,
                         ParseException e) {
            // TODO Auto-generated method stub
            if (e == null)
            {



                ArrayList <String> notesArray = new ArrayList<String>();
                for (ParseObject j : list){

                    notesArray.add(j.getString("Title"));
                }

                ArrayAdapter notesAdapter = new  ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1, notesArray );
                List_View.setAdapter(notesAdapter);



            } else {

                e.getMessage();
                Log.d(""+e.getMessage()," errorr");
            }

        }}
    );}

 }
公共类TabFragment2扩展了片段{
ArrayList注释对象;
ArrayAdapter notesAdapter;
ArrayAdapter CarsAdapter;
列表视图列表视图;
搜索视图搜索视图;
swipeToReload;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
最终视图=充气机。充气(R.layout.tab_碎片_2,容器,错误);
List_View=(ListView)View.findViewById(R.id.notesList);
Search\u View=(SearchView)View.findviewbyd(R.id.SearchView);
swipeToReload=(SwipeRefreshLayout)view.findViewById(R.id.swipe\u refresh\u layout);
ParseQuery=ParseQuery.getQuery(“注释”);
查询。在何处存在(“标题”);
query.fromLocalDatastore();
findInBackground(新的FindCallback(){
@凌驾
公共作废完成(列表,
解析异常(e){
如果(e==null){

如果(list.size(),请确保适配器不是
null
。只需使用类似于

Log.d("tag","notesAdapter="+notesAdapter);
notesAdapter.getFilter().filter(newText);
然后检查logcat以查看
notesdapter
是否给出
notesdapter=null
。如果是这样,则问题在于适配器


其次,转到自定义listadapter类中的
getfilter
方法,确保您的筛选器不会返回
null
。它必须返回筛选器。

谢谢您的响应:)我的适配器没有类,我必须为它创建类吗?嘿,它返回
null
,你能解释一下原因吗,因为在我的listView中,我有
适配器提供的值,你的searchView是否在actionBar之外?@Skrillex你在发布的代码第7行声明了字段notesAdapter:ArrayAdapter notesAdapter;然后重新初始化第56103176行上的同一字段:ArrayAdapter notesAdapter=new ArrayAdapter….只需删除此行上的ArrayAdapter,左notesAdapter=new ArrayAdapter是的,它在我的操作栏之外y操作栏有一个带有4个选项卡(片段)的选项卡栏