मैं एक AsyncTask कक्षा से दूसरी सूची में 3 सूची भेजने का प्रयास कर रहा हूं। AsyncTask क्लास जोंस से 3 अलग-अलग डेटा लेती है और 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);
}
1
Erman Elmalı 26 नवम्बर 2017, 23:33

1 उत्तर

सबसे बढ़िया उत्तर

आप अपनी onPostExecute विधि से सीधे अपनी setupRecyclerView विधि को कॉल क्यों नहीं करते ??

यदि आप नहीं चाहते हैं कि आप इन सूची को एक कस्टम वर्ग के भीतर संग्रहीत करें और उस वर्ग वस्तु को अन्य गतिविधि के इरादे से पास करें।

1) एक कस्टम क्लास MyLists बनाएं और इन सूचियों को इस क्लास के भीतर सेट करें।

2) इस वर्ग को Serializable के साथ कार्यान्वित करें।

3) किसी अन्य गतिविधि के इरादे से Mylists क्लास ऑब्जेक्ट पास करें।

0
MezzDroid 26 नवम्बर 2017, 23:54