android - How add Searchable Editbox? -
android - How add Searchable Editbox? -
i trying create searchable edittext. not show error in log cat. not show search result. have added search intent in androidmanifest. can guide me solve problem.
mainactivity.java
import android.app.activity; import android.content.intent; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.os.bundle; import android.support.v4.widget.simplecursoradapter; import android.text.editable; import android.text.textwatcher; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.adapterview; import android.widget.edittext; import android.widget.listview; public class mainactivity extends activity { private mydbhelper mydb; private simplecursoradapter adapter; public static final string row_id = "row_id"; edittext inputsearch; listview dplist; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); //********************************// //begin of database-table1_dept_list //********************************// dplist= (listview) findviewbyid(r.id.list_view); //instantiate database mydb =new mydbhelper(this, null, null,4); sqlitedatabase db =mydb.getreadabledatabase(); //removing duplicate values table1_dept_list mydb.delete_dep_list(); //inserting table1_dept_list mydb.add_dept_list("dlbiochem","biochemistry"); mydb.add_dept_list("dlbiotech","biotechnology"); mydb.add_dept_list("dlbot", "botany"); mydb.add_dept_list("dlchem","chemistry"); mydb.add_dept_list("dlcom","commerce"); mydb.add_dept_list("dlcs","computer science"); mydb.add_dept_list("dleco","economics"); mydb.add_dept_list("dledu","education"); mydb.add_dept_list("dleng","english"); mydb.add_dept_list("dlevs","environmental science"); mydb.add_dept_list("dlfsn","food science , nutrition"); mydb.add_dept_list("dlgeo","geology"); mydb.add_dept_list("dljmc", "journalism , massmedia communication"); mydb.add_dept_list("dllis","library , info science"); mydb.add_dept_list("dlmath","mathematics"); mydb.add_dept_list("dlmicro","microbiology"); mydb.add_dept_list("dlpe","physical education"); mydb.add_dept_list("dlphy","physics"); mydb.add_dept_list("dlprims","periyar institute of management studies"); mydb.add_dept_list("dlpsy","psychology"); mydb.add_dept_list("dlsoc","sociology"); mydb.add_dept_list("dltam", "tamil"); mydb.add_dept_list("dltad","textile , wearing apparel design"); mydb.add_dept_list("dlzoo","zoology"); //list view cursor alldeptlist = mydb.get_dept_list(); string[] from=new string[] { mydbhelper.dept_list_column_name }; int[] to=new int[] {r.id.dis_text}; adapter = new simplecursoradapter(this,r.layout.disp_text,alldeptlist,from,to,0 ); dplist.setadapter(adapter); //********************************// //end of database-table1_dept_list// //********************************// //******************************// //passing values new activity// //******************************// dplist.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view arg1, int position, long arg3) { // todo auto-generated method stub cursor cursor = (cursor) dplist.getitematposition(position); string dep_name = cursor.getstring(cursor.getcolumnindex(mydbhelper.dept_list_column_name)); string dep_id = cursor.getstring(cursor.getcolumnindex(mydbhelper.dept_list_column_id)); intent intent_dp_list = new intent(mainactivity.this,departmentdesignation.class); intent_dp_list.putextra("dep_name",dep_name); intent_dp_list.putextra("dep_id",dep_id); startactivity(intent_dp_list); } }); //*********************************// //end of passing values activity// //*********************************// inputsearch = (edittext)findviewbyid(r.id.search_box); inputsearch.addtextchangedlistener(new textwatcher(){ @override public void aftertextchanged(editable arg0) { // todo auto-generated method stub } @override public void beforetextchanged(charsequence arg0, int arg1, int arg2, int arg3) { // todo auto-generated method stub } @override public void ontextchanged(charsequence cs, int arg1, int arg2, int arg3) { // todo auto-generated method stub mainactivity.this.adapter.getfilter().filter(cs); } }); } activity_main.xml
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".mainactivity" android:orientation="horizontal" > <edittext android:id="@+id/search_box" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/searchhint" /> <listview android:id ="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content" /> </linearlayout> androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.contact" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="18" /> <uses-permission android:name="android.permission.call_phone" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.contact.mainactivity" android:label="@string/app_name" android:windowsoftinputmode="statehidden" > <intent-filter> <action android:name="android.intent.action.main" /> <action android:name="android.intent.action.search" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="com.example.contact.departmentdesignation" /> <activity android:name="com.example.contact.personslistactivity" /> <activity android:name="com.example.contact.hoddetails" /> </application> </manifest>
you need implement custom adapter show results when filter text.
public class adapter extends baseadapter implements filterable { private layoutinflater minflater; list<items> mlist; list<items> mfilter; public adapter(list<items> list, context context) { minflater = layoutinflater.from(context); mlist = list; mfilter = list; } @override public int getcount() { homecoming mfilter.size(); } @override public object getitem(int position) { homecoming mfilter.get(position); } @override public long getitemid(int position) { homecoming mfilter.get(position).getid(); } @override public view getview(int position, view convertview, viewgroup parent) { //show view homecoming convertview; } /*********** search **********/ @override public filter getfilter() { homecoming new filter() { @suppresswarnings("unchecked") @override protected void publishresults(charsequence constraint, filterresults results) { mfilter = (list<items>) results.values; notifydatasetchanged(); } @override protected filterresults performfiltering(charsequence charsequence) { filterresults results = new filterresults(); if (charsequence == null || charsequence.length() == 0) { results.values = mlist; results.count = mlist.size(); } else { arraylist<items> filterresultsdata = new arraylist<items>(); // search database , show results results.values = filterresultsdata; results.count = filterresultsdata.size(); } homecoming results; } }; } } android
Comments
Post a Comment