2013-04-19 2 views
1

Я пытаюсь заполнить элемент управления ListView в приложении для Android. Я просмотрел множество примеров кода, и все, кажется, предлагают сделать это таким образом. Однако, когда я пытаюсь реализовать это, я получаю следующее сообщение об ошибке:Конструктор не определен в ArrayAdapter

Конструктор ArrayAdapter (MainActivity.ReadJsonTask, INT, ArrayList) не определено

protected void onPostExecute(String result){ 
     try{ 
      ListView lv = (ListView)findViewById(R.id.lstItems); 
      JSONObject jsonObj = new JSONObject(result); 

      ArrayList<String> items = new ArrayList<String>(); 
      Iterator<String> looper = jsonObj.keys(); 
      while(looper.hasNext()){ 
       String key = looper.next(); 
       items.add(jsonObj.get(key).toString()); 
      }    
      adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); 
      lv.setAdapter(adapter); 

     }catch(Exception ex){ 
      Log.d("ReadAdscendJsonTask", ex.getLocalizedMessage()); 
     } 
    } 

Что здесь не так? Благодаря!

+2

Угадать этот кусок кода из внутреннего класса? Вы можете попробовать «MainActivity.this'' для контекста. – harism

+0

Спасибо! Это сработало, можете ли вы опубликовать это как ответ? – Pheepster

ответ

1

Кажется, что этот кусок кода является внутренним классом. И в таком случае this относится к этому внутреннему классу вместо MainActivity. Изменение параметра Context на MainActivity.this для ArrayAdapter должно исправить ошибку.

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