*** 作栏搜索视图(Android)null错误

 *** 作栏搜索视图(Android)null错误,第1张

概述我不确定为什么它出现为null,如果它必须对片段和片段标题或抽屉做一些事情,因为它是在这个片段被拉出的主要活动上. 这是我的菜单xml项目: <?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://sch 我不确定为什么它出现为null,如果它必须对片段和片段标题或抽屉做一些事情,因为它是在这个片段被拉出的主要活动上.

这是我的菜单xml项目:

<?xml version="1.0" enCoding="utf-8"?><menu xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto" >    <item androID:ID="@+ID/action_search"        androID:title="@string/action_search"        androID:icon="@drawable/ic_action_search"        app:showAsAction="always"        app:actionVIEwClass="androID.support.v7.Widget.SearchVIEw" /></menu>

这是片段代码:

public class browseFragment extends Fragment {    //action bar expands to search    //search - keyword or tab search,Title    //include popular - same algorithm as home    //show categorIEs    //category click takes you to grID activity//adapter with custom model    private categoryVIEwerAdapter adapter;    //List with custom model    private List<categoryItem> categorIEsList;    //List vIEw    private ListVIEw categoryListVIEw;    //SearchVIEw    private SearchVIEw search;    @OverrIDe    public voID onCreateOptionsMenu(Menu menu,MenuInflater inflater) {        inflater.inflate(R.menu.browse,menu);        //find the menu item and set search vIEw at the same time        search = (SearchVIEw) menu.findItem(R.ID.action_search).getActionVIEw();        //to always show the search vIEw - to include this must implement it above        search.setonqueryTextListener(new SearchVIEw.OnqueryTextListener() {            @OverrIDe            public boolean onqueryTextsubmit(String s) {                return false;            }            @OverrIDe            public boolean onqueryTextChange(String s) {                return false;            }        });        search.setIconifIEd(false);        super.onCreateOptionsMenu(menu,inflater);    }    @OverrIDe    public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) {        VIEw rootVIEw = inflater.inflate(R.layout.fragment_browse,container,false);        //Allows menu options in fragment        setHasOptionsMenu(true);        //Set adapter for multi-select model and adapter        adapter = new categoryVIEwerAdapter(getActivity(),getSinglecategory());        categoryListVIEw = (ListVIEw) rootVIEw.findVIEwByID(R.ID.categoryListVIEw);        categoryListVIEw.setAdapter(adapter);        return rootVIEw;    }    //call to retrIEve List    private List<categoryItem> getSinglecategory() {        //initiate new List        categorIEsList = new ArrayList<categoryItem>();        //called to get string array        Resources res = getResources();        String[] categorIEs = res.getStringArray(R.array.categorIEs);        //loop through string array        for (String category : categorIEs) {            categorIEsList.add(get(category));        }        return categorIEsList;    }    //call model to set names and methods for each item    private categoryItem get(String name) {        return new categoryItem(name);    }}

空指针错误指向此行:

search.setonqueryTextListener(new SearchVIEw.OnqueryTextListener() {

这是错误日志:

03-03 02:50:33.590  15744-15744/? E/AndroIDRuntime﹕ FATAL EXCEPTION: main    Process: com.example.app,PID: 15744    java.lang.NullPointerException            at com.example.app.browseFragment.onCreateOptionsMenu(browseFragment.java:64)            at androID.app.Fragment.performCreateOptionsMenu(Fragment.java:1780)            at androID.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:1927)            at androID.app.Activity.onCreatePanelMenu(Activity.java:2539)            at com.androID.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:436)            at com.androID.internal.policy.impl.PhoneWindow.doInvalIDatePanelMenu(PhoneWindow.java:800)            at com.androID.internal.policy.impl.PhoneWindow.run(PhoneWindow.java:221)            at androID.vIEw.Choreographer$CallbackRecord.run(Choreographer.java:761)            at androID.vIEw.Choreographer.doCallbacks(Choreographer.java:574)            at androID.vIEw.Choreographer.doFrame(Choreographer.java:543)            at androID.vIEw.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:747)            at androID.os.Handler.handleCallback(Handler.java:733)            at androID.os.Handler.dispatchMessage(Handler.java:95)            at androID.os.Looper.loop(Looper.java:136)            at androID.app.ActivityThread.main(ActivityThread.java:5017)            at java.lang.reflect.Method.invokeNative(Native Method)            at java.lang.reflect.Method.invoke(Method.java:515)            at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)            at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:595)            at dalvik.system.NativeStart.main(Native Method)
解决方法 你在用Proguard吗?如果是这样,请确保您有一个保留androID.support.v7.Widget.SearchVIEw类的规则.

例如,要将所有不同版本的支持库中的所有内容保留,请添加:

-keep class androID.support.** { *; }-keep interface androID.support.** { *; }

到您的proguard-rules.txt文件.

总结

以上是内存溢出为你收集整理的 *** 作栏搜索视图(Android)null错误全部内容,希望文章能够帮你解决 *** 作栏搜索视图(Android)null错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存