2016-03-21 5 views
0

私はコーディングを始めたばかりなので、別のコードをアプリケーションに貼り付けてコピーしています。しかし、私は彼らを悩ませ続けたくありません。他のアクティビティからデータを受け取るArrayList [Java]

私の問題は、クラスの底部にあるArrayListをどのように開いて、別のクラスに値を入れて後で継承する文字列に値を入れて、最後に私のYoutube API。ゲッター

まず、これは最初のアクティビティである(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 /レイアウトで開きたいとのためのアダプタとして行動しなければなりません上記の活動。

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; 
} 

上記のスクリプトは空リストリストであり、リストビューをテストすることができます。しかし、これは他のアクティビティからの 'new' 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のでなく、maybyにより、私は右の検索用語を使用していないことを知識の欠如に使用するawnserのために、この一日検索してきました。

PS。どのようにして(JSONやArrayListsのような)データ転送を学びましたか?やってみるだけで?あなたはオンラインコースや何かを持っていましたか?私は基本的なAndroidスタジオコースを試しましたが、基本的に長続きすると興味を失ってしまいました。しかし、私はこのアプリをもっと遠くに持っていくことに気が付きました。私が固まっているのは、単純なコーディングです。

+0

[OK]をので、まずあなたがこの上で全体の文脈を配置する必要があります、私は本当に最初のクラスとは何かを理解していないので、2番目は何ですか、私は最初のアクティビティと2番目のあなたのアダプタは、あなたがしなければならないあなたのarraylistを取得した後、それを設定するメソッドを作成するか、コンストラクタ自体で渡す必要がある場合は、そのアクティビティを別のアクティビティに渡す必要がある場合は、そのインテントを介して行う必要があります。コードのコンテキストをもう少し説明してくださいあなたのお手伝いをすることに感謝します。 – Eefret

+0

ファーストクラスにはArraylistを救うことのできるフィールドがあるようです。また、getArrayLesson()メソッドでは、必要な配列だけを返すように定義します。もっとコードを貼り付けることはできますか? – marco

+0

私はあなたにコードを見せたいが、あなたが探しているコードがわからない。 getArrayLesson()はsetButtonLessonsで呼び出されていますが、まだ動作していません。 – Jaxhead

答えて

1

はあなたがgetLessonsで満たされたArrayListを()メソッドは、ちょうどこのようなクラスとgetArrayLesson()メソッドを呼び出しを取得するには:

public class DataFiller{ 

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

私はこれを試しましたが、私が行ったとき、私のリターンmLessonsは、 "静的なコンテキスト 'mLessons'を静的コンテキストから参照することはできません。 – Jaxhead

+0

public static ArrayList public List to public ArrayList readLessons() – jonhid

+0

静的を削除すると、 "返されるLesSelectionActivity.getArrayLesson();"もはや動かず、エラー "非静的メソッド 'getArrayLesson()'を静的コンテキストから参照することはできません。 私にとって、これは意味をなさない。なぜなら、私がaltを入力すると、最初のクラス(LesSelectionActivity)のgetArrayLessonをpublic staticに戻すよう助言するからです。 – Jaxhead

関連する問題