2015-09-22 2 views
2

Я пытаюсь использовать файл ресурсов simple_list_item_1 в моем ArrayAdapter, но его показ ошибкуне может разрешить символу simple_list_item_1

не удается разрешить символу simple_list_item_1

Тогда я искать и выяснил, что мне нужно использовать android.R.layout.simple_list_item_1, но его показ ошибку снова

не удается разрешить конструктор «ArrayAdapter (android.support.v4.app.FragmentActiv ность, INT, java.lang.String)»

это мой код

@Override 
protected void onPostExecute(String lessonResponse) { 
    Log.d("my_test", lessonResponse); 

    try { 
     JSONObject lessonObject = new JSONObject(lessonResponse); 

     JSONArray lessonArray = lessonObject.getJSONArray("data"); 

     for (int i = 0; i < lessonArray.length(); i++) { 

      JSONObject dataLessons = lessonArray.getJSONObject(i); 

      String jsonTitle = dataLessons.getString("lesson_title"); 

      ArrayAdapter<String> adapterTitle = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, jsonTitle); 
      lessonList.setAdapter(adapterTitle); 
      Log.d("Lesson Title", " " + jsonTitle); 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

} 

импорт

import android.app.Activity; 
import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.net.Uri; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

скриншот ссылка

http://prntscr.com/8j444e

http://prntscr.com/8j44dv

Пожалуйста, помогите ... спасибо ..

+1

Чтобы построить на ответ Марко, вы должны использовать 'for' цикл для заполнения' String [] или 'ArrayList ' и после того, как цикл закончен, используйте этот заполненный массив в качестве аргумента для вашего 'ArrayAdapter' – PPartisan

ответ

2

Проблема связана с вашим третьим аргументом при создании адаптера.

Третий аргумент должен быть ArrayList или Array[] из элементов, которые будут отображаться, а не String как в вашем случае (jsonTitle).

И не устанавливайте адаптер в петлю цикла. Заполните ArrayList или Array, а затем установите адаптер.

2

Он не может решить конструктор, потому что вы, вероятно, хотите использовать этот один:

ArrayAdapter(Context context, int resource, List<T> objects) 

так что вы нуждаетесь в массиве объектов вместо простой строки. Попробуйте это:

ArrayList<String> list = new ArrayList<String>();  
JSONArray jsonArray = (JSONArray) lessonArray.getJSONObject(i); 
if (jsonArray != null) { 
    int len = jsonArray.length(); 
    for (int i=0;i<len;i++){ 
     list.add(jsonArray.get(i).toString()); 
    } 
} 


ArrayAdapter<String> adapterTitle = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, list); 
lessonList.setAdapter(adapterTitle);