The xml file in which you defined the listview add one android property filtertext. You don't have to change anything in code.
On Apr 2, 9:19 am, "Igor Nesralla Ribeiro" <nesra...@gmail.com> wrote: > Hi, > > i have a edittext and a listview ... I want to do this....when the users > type on a edittext this will filter a listview.... > But...the problem is the listview returns nothing when I type someword that > i have in the list. > > Can anyone help me ? or there any another simple way to do this.... > > Here is my code... > public class Restaurants extends Activity { > > private ListView restaurantListView; > private ArrayList<RestaurantsInfo> mRestaurants; > private ListAdapter lstAdapter; > EditText edt; > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > try { > setContentView(R.layout.restaurants); > mRestaurants = getRestaurants(); > restaurantListView = (ListView) > findViewById(R.id.lvRestaurant); > lstAdapter = new ListAdapter(this, > R.id.lvRestaurant, mRestaurants); > restaurantListView.setAdapter(lstAdapter); > > restaurantListView.setTextFilterEnabled(true); > restaurantListView.setOnItemClickListener(new > ListView.OnItemClickListener() { > @Override > public void onItemClick(AdapterView<?> arg0, > View arg1, > int arg2, long arg3) { > // TODO Auto-generated method stub > > Intent its = new > Intent(getBaseContext(),RestaurantsDetails.class); > > Bundle b = new Bundle(); > b.putLong("key",arg3); > > its.putExtras(b); > > startActivity(its); > } > }); > edt = (EditText)findViewById(R.id.editText); > edt.addTextChangedListener(new TextWatcher() { > @Override > public void onTextChanged( CharSequence > arg0, int arg1, int arg2, int arg3) > { // TODO Auto-generated method > stub > > Restaurants.this.lstAdapter.getFilter().filter(arg0); > > } > @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 > > } > > }); > } catch (Exception e) { > // TODO: handle exception > Log.e("oncreate resta",e.getMessage()); > } > > } > public ArrayList<RestaurantsInfo> getRestaurants(){ > > DBAdapter dbAdapter=DBAdapter.getDBAdapterInstance(this); > try { > dbAdapter.createDataBase(); > } catch (IOException e) { > Log.i("*** select ",e.getMessage()); > } > dbAdapter.openDataBase(); > String query="SELECT * FROM restaurants;"; > ArrayList<ArrayList<String>> stringList = > dbAdapter.selectRecordsFromDBList(query, null); > dbAdapter.close(); > > ArrayList<RestaurantsInfo> restaurantsList = new > ArrayList<RestaurantsInfo>(); > for (int i = 0; i < stringList.size(); i++) { > ArrayList<String> list = stringList.get(i); > RestaurantsInfo restaurant = new RestaurantsInfo(); > try { > restaurant.id = > Integer.parseInt(list.get(0)); > restaurant.res_name = list.get(1); > restaurant.res_city = list.get(2); > } catch (Exception e) { > Log.i("***" + Restaurants.class.toString(), > e.getMessage()); > } > restaurantsList.add(restaurant); > } > return restaurantsList; > } > private class ListAdapter extends ArrayAdapter<RestaurantsInfo>{ > > private ArrayList<RestaurantsInfo> mList; > private Context mContext; > > public ListAdapter(Context context, int > textViewResourceId,ArrayList<RestaurantsInfo> list) { // > --CloneChangeRequired > super(context, textViewResourceId, list); > this.mList = list; > this.mContext = context; > } > > public View getView(int position, View convertView, > ViewGroup parent){ > View view = convertView; > try{ > if (view == null) { > LayoutInflater vi = (LayoutInflater) > getSystemService(Context.LAYOUT_INFLATER_SERVICE); > view = > vi.inflate(R.layout.restaurant_row, null); // > --CloneChangeRequired(list_item) > } > final RestaurantsInfo listItem = > mList.get(position); // --CloneChangeRequired > > if (listItem != null) { > // setting list_item views > > ( (TextView) > view.findViewById(R.id._id) ).setText( listItem.getId()+""); > ( (TextView) > view.findViewById(R.id.res_name) ).setText( listItem.getRes_name()); > ( (TextView) > view.findViewById(R.id.res_city) ).setText( listItem.getRes_city()+"" ); > > }}catch(Exception e){ > > Log.i(Restaurants.ListAdapter.class.toString(), e.getMessage()); > > } > return view; > } > } > > > > > > > > } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en