这是我的菜单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错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)