从其他活动收集数据ArrayList [Java]

时间:2016-03-21 15:31:42

标签: java android json arraylist

我一直在将很多不同的代码粘贴到我的应用程序中(因为我刚刚开始编码)并得到了朋友们的帮助。但我不想继续打扰他们。

我的问题是,我不知道如何打开在类底部创建的ArrayList到另一个类,在那里他将值分隔成字符串,稍后将传递,最后应该在我的Youtube API中结束

首先是getter,这是第一个活动(LesSelectionActivity.java)

    public void getLessons(){

    APIClient.get(url, new JsonHttpResponseHandler(){
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject object) {

            if (object != null) {
                try {
                    JSONArray jsonLesson = object.getJSONArray("sqllessons");
                   mLessons = new ArrayList<Lesson>();
                    for (int Index = 0; Index < jsonLesson.length(); Index++) {

                        try {
                            JSONObject jsonLes = jsonLesson.getJSONObject(Index);
                            Lesson lesson = new Lesson();

                            lesson.id = jsonLes.getInt("_id");
                            lesson.number = jsonLes.getInt("lesnumber");
                            lesson.videoId = jsonLes.getString("videourl");

                            System.out.println("data test: " + lesson.id);

                            mLessons.add(lesson);

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

        @Override
        public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
            Toast.makeText(LesSelectionActivity.this, "FAIL", Toast.LENGTH_LONG).show();
        }
    });
}

public  ArrayList<Lesson> getArrayLesson() {
    return mLessons;
}

我希望它在我的'DataFiller'中打开 它没有XML / Layout,应该作为上述活动的适配器。

public class DataFiller{

public static ArrayList<Lesson> readLessons(int given) {
    ArrayList<Lesson> lessons = new ArrayList<Lesson>();
    for (int i = (given * 25) - 24; i <= 25 * given; i++) {
        Lesson lesson = new Lesson();
        lesson.setId(i);
        lessons.add(lesson);
    }
    return lessons;
}

上面的脚本只是一个空的arraylist所以我可以测试listview。但是应该将其编辑为来自其他活动的“新”ArrayList。

我不确定你是否需要它,但这是Lesson模型。

public class Lesson implements Serializable {

public int id;
public int number;
public String videoId;

public Lesson() {
}

public Lesson(Lesson lesson) {
    number = lesson.number;
    id = lesson.id;
    videoId = lesson.videoId;
}

public int getId() { return id; }

public void setId(int id) {
    this.id = id;
}

public String getVideoId() {
    return videoId;
}

public void setVideoId(String videoId) {
    this.videoId = videoId;
}

public int getNumber() {
    return number;
}

public void setNumber(int number) {
    this.number = number;
}

我整整一天都在搜索如何使用该ArrayList,但由于缺乏知识我没有使用正确的搜索词。可能是因为。

PS。你是如何学习数据传输的(如JSON和ArrayLists)。只是通过做和尝试?或者你有在线课程或什么?我已经尝试过基本的Android Studio课程但是在他们长期坚持基础知识后失去了兴趣。但是我注意到我用这个应用程序得到的距离越远,我就越多(我认为是)简单的编码片段?

1 个答案:

答案 0 :(得分:1)

要获取在getLessons()方法中填充的ArrayList,只需调用类和getArrayLesson()方法,如下所示:

 public class DataFiller{

     public ArrayList<Lesson> readLessons() {  
         return LesSelectionActivity.getArrayLesson();
    }
 }