2013-07-19 2 views
3

Мне нужна помощь, чтобы заставить фильтр работать. ListView отображается правильно, но когда я вхожу письмо, в поле поиска он дает ошибкуФильтрация listView данных с помощью SimpleAdapter

java.lang.NullPointerException 

и приложение закрывается.

Вот фрагмент кода из моей деятельности, я думаю, что я должен исправить, но не знаю, как:

protected void onPostExecute(String file_url) { 
     // dismiss the dialog after getting all albums 
     pDialog.dismiss(); 
     // updating UI from Background Thread 
     runOnUiThread(new Runnable() { 
      public void run() { 
       /** 
       * Updating parsed JSON data into ListView 
       * */ 

       ListAdapter adapter = new SimpleAdapter(
         WineSearchActivity_2.this, albumsList, 
         R.layout.activity_search_list_of_wines, new String[] { 
           TAG_wine_id, TAG_wine_name, 
           TAG_wine_country_id, 
           TAG_wine_country_flag_pic }, new int[] { 
           R.id.wine_id, R.id.wine_name, 
           R.id.wine_country_id, R.id.imageView2 }); 
       ListView lv = getListView(); 
       LayoutInflater inflater = getLayoutInflater(); 
       View header = inflater.inflate(R.layout.header, 
         (ViewGroup) findViewById(R.id.LinearLayoutHeader)); 
       View search_box = inflater.inflate(R.layout.search_box, 
         (ViewGroup) findViewById(R.id.RelativeLayoutSearchBox)); 
       lv.addHeaderView(header, null, false); 
       lv.addHeaderView(search_box, null, false); 

       // updating listview 
       setListAdapter(adapter); 

       inputSearch = (EditText) findViewById(R.id.inputSearch); 

       inputSearch.addTextChangedListener(new TextWatcher() { 

        @Override 
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
         // When user changed the Text 
         ((SimpleAdapter)WineSearchActivity_2.this.adapter).getFilter().filter(cs); 

        } 

        @Override 
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
          int arg3) { 
         // TODO Auto-generated method stub 


        } 

        @Override 
        public void afterTextChanged(Editable arg0) { 
         // TODO Auto-generated method stub 

        } 
       }); 
+3

В вашем 'onPostExecute()' 'использовать адаптер = новый SimpleAdapter ( WineSearchActivity_2.this, albumsList, ...' (обратите внимание на недостающую 'ListAdapter') – Luksprog

+0

Спасибо Luksprog! Он работает сейчас! – Art

ответ

1

Решение, предлагаемое Luksprog работал.

6

Установите адаптер ListAdapter по всему миру. Я уверен, это сработает. Камаль

Смежные вопросы