Java 搜索视图空引用

Java 搜索视图空引用,java,android,xml,Java,Android,Xml,我看到了这篇与我的问题有关的帖子。 我通读了所有的问题和答案,我都试过了,但没有一个对我有用。 所以最后我试着写一些日志聊天,看看问题出在哪一部分 这是我的菜单_search.xml: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:title="Sear

我看到了这篇与我的问题有关的帖子。

我通读了所有的问题和答案,我都试过了,但没有一个对我有用。 所以最后我试着写一些日志聊天,看看问题出在哪一部分

这是我的菜单_search.xml:

<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:title="Search"
    android:id="@+id/action_search"
    android:icon="@drawable/magnifier24"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always|collapseActionView"/>
</menu>
LogCat在E/main停止活动:新文本8:a 所以我猜问题出在recyclerAdapter.setFilter(newList)中

我是android编程新手,所以如果有任何建议,我将不胜感激

编辑后,我忘了包括RecyclerAdapter.java

以下更新

我收到如下错误消息:

11-30 13:56:25.274 12928-12928/com.afe.maja.searchview E/MainActivity: newText 8 : a
11-30 13:56:25.275 12928-12928/com.afe.maja.searchview E/InputEventSender: Exception dispatching finished signal.
11-30 13:56:25.275 12928-12928/com.afe.maja.searchview E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
11-30 13:56:25.276 12928-12928/com.afe.maja.searchview E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.afe.maja.searchview.RecyclerAdapter.setFilter(java.util.ArrayList)' on a null object reference
                                                                           at com.afe.maja.searchview.MainActivity.onQueryTextChange(MainActivity.java:119)
                                                                           at android.support.v7.widget.SearchView.onTextChanged(SearchView.java:1180)
                                                                           at android.support.v7.widget.SearchView$10.onTextChanged(SearchView.java:1714)
                                                                           at android.widget.TextView.sendOnTextChanged(TextView.java:8187)
                                                                           at android.widget.TextView.handleTextChanged(TextView.java:8249)
                                                                           at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10371)
                                                                           at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1208)
                                                                           at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:578)
                                                                           at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:509)
                                                                           at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:508)
                                                                           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:6285)
                                                                           at android.widget.TextView.onKeyDown(TextView.java:6075)
                                                                           at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:829)
                                                                           at android.view.KeyEvent.dispatch(KeyEvent.java:2688)
                                                                           at android.view.View.dispatchKeyEvent(View.java:9960)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:405)
                                                                           at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1798)
                                                                           at android.app.Activity.dispatchKeyEvent(Activity.java:3021)
                                                                           at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:534)
                                                                           at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:58)
                                                                           at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:316)
                                                                           at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:58)
                                                                           at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:319)
                                                                           at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4331)
                                                                           at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4302)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                                                                           at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
                                                                           at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
                                                                           at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                                                                           at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                                                                        at android.view.ViewRootImpl$A

将setFilter更改为

public void setFilter(ArrayList<Icon> newList){


    Log.e(LogTAG, "newText 8.1");

    if(arrayList != null){
       arrayList.clear();
    }

    Log.e(LogTAG, "newText 8.2");
    arrayList.addAll(newList );

    Log.e(LogTAG, "newText 8.3");
    notifyDataSetChanged();

}
public void setFilter(ArrayList newList){
Log.e(LogTAG,“新文本8.1”);
if(arrayList!=null){
arrayList.clear();
}
Log.e(LogTAG,“新文本8.2”);
arrayList.addAll(newList);
Log.e(LogTAG,“新文本8.3”);
notifyDataSetChanged();
}
更改此选项

RecyclerAdapter myAdapter = new RecyclerAdapter(arrayList);


那有什么问题?是抛出异常还是在searchview上键入时什么都没有发生我尝试了,但仍然没有成功。。发生了相同的错误。甚至达不到
Log.e(LogTAG,“newText 8.1”)看看我的另一个答案。你没有初始化你的RecyclerAdapter哦,对了!!谢谢问题解决了。一个位问题,它无法返回到原始数组,经过一点逻辑后,它工作正常。谢谢你,贝克!
apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.afe.maja.searchview"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:recyclerview-v7:27.0.1'
implementation 'com.android.support:cardview-v7:27.0.1'
implementation 'com.android.support:design:27.0.1'
implementation 'com.android.support:appcompat-v7:27.0.1'
}
11-30 13:56:25.274 12928-12928/com.afe.maja.searchview E/MainActivity: newText 8 : a
11-30 13:56:25.275 12928-12928/com.afe.maja.searchview E/InputEventSender: Exception dispatching finished signal.
11-30 13:56:25.275 12928-12928/com.afe.maja.searchview E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
11-30 13:56:25.276 12928-12928/com.afe.maja.searchview E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.afe.maja.searchview.RecyclerAdapter.setFilter(java.util.ArrayList)' on a null object reference
                                                                           at com.afe.maja.searchview.MainActivity.onQueryTextChange(MainActivity.java:119)
                                                                           at android.support.v7.widget.SearchView.onTextChanged(SearchView.java:1180)
                                                                           at android.support.v7.widget.SearchView$10.onTextChanged(SearchView.java:1714)
                                                                           at android.widget.TextView.sendOnTextChanged(TextView.java:8187)
                                                                           at android.widget.TextView.handleTextChanged(TextView.java:8249)
                                                                           at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10371)
                                                                           at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1208)
                                                                           at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:578)
                                                                           at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:509)
                                                                           at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:508)
                                                                           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:6285)
                                                                           at android.widget.TextView.onKeyDown(TextView.java:6075)
                                                                           at android.widget.AutoCompleteTextView.onKeyDown(AutoCompleteTextView.java:829)
                                                                           at android.view.KeyEvent.dispatch(KeyEvent.java:2688)
                                                                           at android.view.View.dispatchKeyEvent(View.java:9960)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1630)
                                                                           at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:405)
                                                                           at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1798)
                                                                           at android.app.Activity.dispatchKeyEvent(Activity.java:3021)
                                                                           at android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:534)
                                                                           at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:58)
                                                                           at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:316)
                                                                           at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:58)
                                                                           at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:319)
                                                                           at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4331)
                                                                           at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4302)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                                                                           at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
                                                                           at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
                                                                           at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                                                                           at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
                                                                        at android.view.ViewRootImpl$A
public void setFilter(ArrayList<Icon> newList){


    Log.e(LogTAG, "newText 8.1");

    if(arrayList != null){
       arrayList.clear();
    }

    Log.e(LogTAG, "newText 8.2");
    arrayList.addAll(newList );

    Log.e(LogTAG, "newText 8.3");
    notifyDataSetChanged();

}
RecyclerAdapter myAdapter = new RecyclerAdapter(arrayList);
recyclerAdapter = new RecyclerAdapter(arrayList);