android - Unable to use search view to filter list view -
i want filter listview using input in search view. have following code:
package com.example.shiza.dailyquranverses; import android.os.asynctask; import android.os.bundle; import android.support.v7.app.actionbaractivity; import android.widget.searchview; import android.support.v7.widget.toolbar; import android.text.textutils; import android.view.view; import android.widget.arrayadapter; import android.widget.listview; import android.widget.toast; import com.example.shiza.dailyquranverses.dailyquranmethods; public class searchresultsactivity extends actionbaractivity implements searchview.onquerytextlistener{ toolbar toolbar; listview listview; searchview searchview; arrayadapter<string> adapter; dailyquranmethods dailyquranmethods = new dailyquranmethods(); @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_search_results); toolbar = (toolbar) findviewbyid(r.id.app_bar_search_results); toolbar.setlogo(r.mipmap.ic_launcher); toolbar.settitle(" daily qura'n verses"); setsupportactionbar(toolbar); toast.maketext(this, "hello oncreate method", toast.length_long).show(); // using searchview display data in app searchview = (searchview) findviewbyid(r.id.mysearchview); listview = (listview) findviewbyid(r.id.listview); adapter = new arrayadapter<string>(this, android.r.layout.simple_list_item_1, dailyquranmethods.getquranverses(this)); listview.setadapter(adapter); searchview.setonquerytextlistener(this); } @override public boolean onquerytextsubmit(string query) { return false; } @override public boolean onquerytextchange(string newtext) { adapter.getfilter().filter(newtext); return false; } } now onquerytextchange, application stopped. looks following method has issue:
public boolean onquerytextchange(string newtext) { adapter.getfilter().filter(newtext); return false; }
please me solve this.
edit 1: logcat :
06-19 14:40:25.815 3259-3259/com.example.shiza.dailyquranverses e/androidruntime﹕ fatal exception: main java.lang.nullpointerexception @ android.widget.arrayadapter.getcount(arrayadapter.java:330) @ android.widget.adapterview.checkfocus(adapterview.java:700) @ android.widget.adapterview$adapterdatasetobserver.oninvalidated(adapterview.java:823) @ android.widget.abslistview$adapterdatasetobserver.oninvalidated(abslistview.java:5600) @ android.database.datasetobservable.notifyinvalidated(datasetobservable.java:47) @ android.widget.baseadapter.notifydatasetinvalidated(baseadapter.java:59) @ android.widget.arrayadapter$arrayfilter.publishresults(arrayadapter.java:513) @ android.widget.filter$resultshandler.handlemessage(filter.java:282) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:137) @ android.app.activitythread.main(activitythread.java:4424) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:511) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) @ dalvik.system.nativestart.main(native method)
Comments
Post a Comment