i have activity list clients on listview sql server database, , i've had implement searchview.. dont know how implement query search client names listview.. can me??
here code activity list:
package com.example.hp13_b200.testedesign; import android.app.listactivity; import android.app.progressdialog; import android.app.searchmanager; import android.content.context; import android.content.intent; import android.os.asynctask; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.support.v7.widget.searchview; import android.util.log; import android.view.menu; import android.view.menuinflater; import android.view.menuitem; import android.view.view; import android.widget.linearlayout; import android.widget.listadapter; import android.widget.listview; import android.widget.simpleadapter; import android.widget.textview; import org.apache.http.namevaluepair; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.util.arraylist; import java.util.hashmap; import java.util.list; public class listar_clientes extends actionbaractivity { private listview list; private textview nome, abv, esaldo, telefone, mail, morada; private searchview search; private progressdialog pdialog; @override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getmenuinflater(); inflater.inflate(r.menu.menu_listar_clientes, menu); // associate searchable configuration searchview searchmanager searchmanager = (searchmanager) getsystemservice(context.search_service); searchview searchview = (searchview) menu.finditem(r.id.search).getactionview(); searchview.setsearchableinfo( searchmanager.getsearchableinfo(getcomponentname())); return true; // associate searchable configuration searchview } // creating json parser object jsonparser jparser = new jsonparser(); arraylist<hashmap<string, string>> productslist; // url products list private static string url_all_products = "http://ciemarco.dyndns.org:90/androidapp/listar_clientes.php"; // json node names private static final string tag_cliente= "clientes"; private static final string tag_nome = "nome"; private static final string tag_abv = "nome2"; private static final string tag_saldo = "esaldo"; private static final string tag_telefone = "telefone"; private static final string tag_morada = "morada"; private static final string tag_mail = "email"; // products jsonarray jsonarray products = null; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_listar_clientes); // intent, verify action , query intent intent = getintent(); /*if (intent.action_search.equals(intent.getaction())) { string query = intent.getstringextra(searchmanager.query); domysearch(query); }*/ nome = (textview)findviewbyid(r.id.name); abv = (textview)findviewbyid(r.id.abv); telefone = (textview)findviewbyid(r.id.telefone); morada = (textview)findviewbyid(r.id.morada); mail = (textview)findviewbyid(r.id.mail); esaldo = (textview)findviewbyid(r.id.esaldo); list = (listview)findviewbyid(android.r.id.list); // hashmap listview productslist = new arraylist<hashmap<string, string>>(); // loading products in background thread new loadallproducts().execute(); // log.v("count-->",productslist.get(0).tostring()); // listview /* list.setonitemclicklistener(new adapterview.onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { // getting values selected listitem string nome = ((textview) view.findviewbyid(r.id.name)).gettext() .tostring(); log.d("cod_conta: ", ""+nome); // starting new intent intent in = new intent(listar_clientes.this, detalhes_cliente.class); // sending pid next activity in.putextra(tag_nome, nome); //in.putextra(tag_abv, abv); log.d("entrou: ", "vai entrar"); //startactivityforresult(in,100); // starting new activity , expecting response startactivity(in); } } );*/ // launching edit product screen // lv.setonitemclicklistener(new adapterview.onitemclicklistener() { // // // // starting new intent // intent in = new intent(getapplicationcontext(), // list_item.class); // // sending pid next activity // in.putextra(tag_pid, pid); // // // starting new activity , expecting response // startactivityforresult(in, 100); // } // }); /* listadapter adapter = new simpleadapter( encomendas_user.this, productslist, r.layout.activity_list_item, new string[] { tag_iduser, tag_titulo}, new int[] { r.id.pid, r.id.name }); // updating listview setlistadapter(adapter);*/ // on seleting single product // launching edit product screen } // response edit product activity @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); // if result code 100 if (resultcode == 100) { // if result code 100 received // means user edited/deleted product // reload screen again intent intent = getintent(); finish(); startactivity(intent); } } /** * background async task load product making http request * */ class loadallproducts extends asynctask<string, string, string> { /** * before starting background thread show progress dialog * */ @override protected void onpreexecute() { super.onpreexecute(); pdialog = new progressdialog(listar_clientes.this); pdialog.setmessage("a carregar dados. por favor aguarde..."); pdialog.setindeterminate(false); pdialog.setcancelable(false); pdialog.show(); } /** * getting products url * */ protected string doinbackground(string... args) { // building parameters list<namevaluepair> params = new arraylist<namevaluepair>(); // getting json string url jsonobject json = jparser.makehttprequest(url_all_products, "get", params); // check log cat json reponse log.d("all products: ", json.tostring()); try { // checking success tag // int success = json.getint(tag_iduser); //log.d("namsuccesse: ", ""+success); //if (success == 1) { // products found // getting array of products products = json.getjsonarray(tag_cliente); // looping through products (int = 0; < products.length(); i++) { jsonobject c = products.getjsonobject(i); // storing each json item in variable string name = c.getstring(tag_nome); string abv = c.getstring(tag_abv); string telefone = c.getstring(tag_telefone); string morada = c.getstring(tag_morada); string mail = c.getstring(tag_mail); string esaldo = c.getstring(tag_saldo); log.d("name teste: ", name); // creating new hashmap hashmap<string, string> map = new hashmap<string, string>(); // adding each child node hashmap key => value map.put(tag_nome, name); map.put(tag_abv, abv); map.put(tag_telefone, telefone); map.put(tag_morada, morada); map.put(tag_mail, mail); map.put(tag_saldo, esaldo); // if(userinfo.userid==(integer.parseint(name))){ // adding hashlist arraylist productslist.add(map); // } } /* } else { // no products found // launch add new product activity //intent = new intent(getapplicationcontext(), // newproductactivity.class); // closing previous activities //i.addflags(intent.flag_activity_clear_top); // startactivity(i); }*/ } catch (jsonexception e) { e.printstacktrace(); } return null; } /** * after completing background task dismiss progress dialog * **/ protected void onpostexecute(string file_url) { // dismiss dialog after getting products pdialog.dismiss(); // updating ui background thread runonuithread(new runnable() { public void run() { /** * updating parsed json data listview * */ listadapter adapter = new simpleadapter( listar_clientes.this, productslist, r.layout.activity_list_item_clientes, new string[]{tag_nome, tag_mail, tag_telefone, tag_morada, tag_saldo}, new int[]{r.id.name, r.id.mail, r.id.telefone, r.id.morada, r.id.esaldo}); // updating listview list.setadapter(adapter); } }); } } public void listar(view v){ linearlayout vwparentrow = (linearlayout)v.getparent(); textview nome=(textview)vwparentrow.getchildat(1); textview telefone=(textview)vwparentrow.getchildat(4); textview morada=(textview)vwparentrow.getchildat(3); textview mail=(textview)vwparentrow.getchildat(5); textview esaldo=(textview)vwparentrow.getchildat(6); // starting new intent intent in = new intent(getapplicationcontext(), detalhes_cliente.class); // sending pid next activity in.putextra(tag_nome, nome.gettext().tostring()); in.putextra(tag_telefone, telefone.gettext().tostring()); in.putextra(tag_morada, morada.gettext().tostring()); in.putextra(tag_mail, mail.gettext().tostring()); in.putextra(tag_saldo, esaldo.gettext().tostring()); // starting new activity , expecting response startactivityforresult(in, 100); } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } @override public boolean onprepareoptionsmenu(menu menu) { menuitem item= menu.finditem(r.id.action_settings); item.setvisible(false); super.onprepareoptionsmenu(menu); return true; } } and here code searchresultactivity:
package com.example.hp13_b200.testedesign; import android.app.searchmanager; import android.content.intent; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; public class searchresultsactivity extends actionbaractivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_search_results); handleintent(getintent()); } @override protected void onnewintent(intent intent) { handleintent(intent); } private void handleintent(intent intent) { if (intent.action_search.equals(intent.getaction())) { string query = intent.getstringextra(searchmanager.query); //use query search data somehow } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_search_results, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } }
regarding model-view-controller approach, need create model data matches search , hand tho view (your list view) display it.
Comments
Post a Comment