【发布时间】:2016-03-21 15:31:42
【问题描述】:
我一直在将许多不同的代码复制粘贴到我的应用程序中(因为我刚开始编码)并得到了朋友的帮助。但我不想继续打扰他们。
我的问题是我不知道如何将在类底部创建的 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。
我不确定你是否需要它,但这里是课程模型。
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 的 awnser,但可能是因为我不知道我没有使用正确的搜索词。
PS。您是如何学习数据传输的(例如 JSON 和 ArrayLists)。只是通过做和尝试?或者你有没有在线课程之类的?我已经尝试过基本的 Android Studio 课程,但在他们长期坚持基础知识后失去了兴趣。但我注意到我在使用这个应用程序时能走多远,我越是坚持(我认为是)简单的编码?
【问题讨论】:
-
好的,所以首先你必须把整个上下文放在这个上面,因为我不太明白什么是第一类,什么是第二类,但我会假设第一个是活动,第二个你的适配器,你必须做的是在得到你的arraylist之后,将它传递给你的适配器,如何?创建一个方法来设置它或通过构造函数本身传递它,如果你需要将它从一个 ACTIVITY 传递给另一个 Activity 你将不得不通过意图来做,请多解释一下你的代码的上下文,我会感谢您的帮助。
-
似乎头等舱有一个字段,您可以在其中保存 Arraylist。您还定义了 getArrayLesson() 方法,它只返回您想要的数组。你能粘贴更多代码吗?
-
我想向您展示代码,但我不知道您要查找的代码。 getArrayLesson() 正在 setButtonLessons 上被调用,但这还没有工作。
标签: java android json arraylist