[libGDX] Volleyを使う

libGDXでインターネットアクセスしてデータを読みこんだり書き込んだりしたかったので、その時のメモ。

libGDXでデフォルトでアクセスできるクラスが多分あるんだと思うんですが(http://westplain.sakuraweb.com/translate/libGDX/Networking.cgi)、Volleyの経験があって、libGDXで使えるならほぼコピペでできるなと思ってVolleyを使ってみました。(一部ハマリポイントが有りました。)

まず、coreとandroidのbuild.gradleのdependencciesに以下を追記、

AndroidManifest.xmlに以下を記載

libGDXでなければ、この後使いたいところに本文を記載すればいいんですが、Volley.newRequestQueueの引数にContextを渡さないといけない部分があるのをどうしようかと思案して、正しいのかどうかはわからないですが、下記の手順で解決できたので良しとしました。

まず、android/src/com…/AndroidLauncherのonCreateにでも以下を記載

コンストラクタにqueueを渡します。

ほんとはシングルトン化とかいうのをするためにMyApplicationクラスを作ってそこでqueueを作るのがいいそうな。イマイチ意味がよくわからないから、ここではActivityで作ってます。libgdxだとActivity一つだしいいんじゃないの?という初心者丸出しの考え。

GdxGame側のコンストラクタでqueueを受け取れるようにします。

あとはgetQueue()のようなメソッドを作っておけばlibgdx側でどこでも呼び出せます。

呼び出したいところに以下を記載。

JSONを扱いたい時は、

ここでJSONObjectが解決できないとかエラーが出ちゃいました。coreのbuild.gradleのdependenciesに以下を記載したら解決。

最後の日付は最新の物があると思うんですが、ここの最新の日時入れたらエラーになったから参考にしたサイトのまま使ってます。

Stringでいい時は、

Volleyの使い方は、Androidアプリ開発の勉強を始めた本に載っていたのでそれを参考にしました。

 

(参考)

http://stackoverflow.com/questions/28588802/android-studio-cannot-resolve-import-org-json-jsonobject

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です