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

Reply via email to