AsyncTask
클래스에서 3 개의리스트를 다른 클래스로 보내려고합니다. AsyncTask
클래스는 json과 3 개의 다른 데이터를 취하고 3 개의 문자열 목록을 삽입합니다. 리사이클러 어댑터를 삽입하려면이 목록을 다른 클래스에 보내야합니다.asynctask 클래스에서 다른 클래스로 3리스트 보내기
public class FetchNewsData extends AsyncTask<String, String, JSONObject> {
static List<String> title = new ArrayList<>();
static List<String> body = new ArrayList<>();
static List<String> imageUrl = new ArrayList<>();
public List<String> getTitle() {
return title;
}
public List<String> getBody() {
return body;
}
public List<String> getImageUrl() {
return imageUrl;
}
private static String url = "https://content.guardianapis.com/search?format=json&show-fields=thumbnail,trailText&api-key=f627bebe-3c4f-4fee-a2fc-3368a3b098c7";
private static final String TAG_RESPONSE = "response";
private static final String TAG_RESULTS = "results";
private static final String TAG_TITLE = "webTitle";
private static final String TAG_DATE = "webPublicationDate";
private static final String TAG_SECTION_NAME = "sectionName";
private static final String TAG_FIELDS = "fields";
private static final String TAG_TEXT = "trailText";
private static final String TAG_IMG_URL = "thumbnail";
@Override
protected JSONObject doInBackground(String... args) {
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
try {
// Getting JSON Array
JSONObject response = json.getJSONObject(TAG_RESPONSE);
JSONArray result = response.getJSONArray(TAG_RESULTS);
for (int i = 0; i < result.length(); i++) {
JSONObject resultsObjects = result.getJSONObject(i);
JSONObject fields = resultsObjects.getJSONObject(TAG_FIELDS);
// Storing JSON item in a Variable
if (resultsObjects.has(TAG_TITLE)) {
String header = resultsObjects.getString(TAG_TITLE);
title.add(header);
} else title.add(null);
if (fields.has(TAG_TEXT)) {
String text = fields.getString(TAG_TEXT);
body.add(text);
} else body.add(null);
if (fields.has(TAG_IMG_URL)) {
String imgUrl = fields.getString(TAG_IMG_URL);
imageUrl.add(imgUrl);
} else imageUrl.add(null);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
다음 코드에서 RecyclerAdapter
은 매개 변수로 3 목록을 가져야합니다. 어떻게해야합니까? 누군가 나를 기쁘게 도와 줄 수 있습니까?
private void setupRecyclerView(RecyclerView recyclerView) {
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
List<String> itemList;
itemList = createItemList();
List<String> titleList=new ArrayList<>(itemData.getTitle());
String[] itemlistToArray = new String[itemList.size()];
itemlistToArray = itemList.toArray(itemlistToArray);
String[] asd= {"a","b","c"};
String[] titlelistToArray = new String[titleList.size()];
titlelistToArray = titleList.toArray(titlelistToArray);
recyclerAdapter = new RecyclerAdapter(asd, itemlistToArray, itemlistToArray);
recyclerView.setAdapter(recyclerAdapter);
}
[recyclerview] (http://www.androidtutorialshub.com/android-recyclerview-tutorial/) 자습서를 완전히 읽고 나면 더 쉽게 될 것입니다. – Erik
고맙습니다. 그것은 매우 유용한 소스입니다. 탭이있는 recyclerview를 사용하려고합니다. setupRecyclerView 메소드가 내 프래그먼트 클래스에 있습니다. 또한 json에서 데이터를 가져와 데이터를 어댑터로 리디렉션해야합니다. setupRecyclerView를 FetchNewsData 클래스로 옮겼습니다. 그리고 textview의 디스플레이 텍스트를 성공 시켰습니다. –