MacでAndroidアプリを作ってみる(第4回目)

公開日 : 最終更新日 :

カテゴリー :

MacでAndroidアプリを作る(第3回目)」の続きです。
前回は、ListActivityを使って、Bloggerの記事のタイトルを取得しました。今回は、Intentを使って記事のタイトルをタップしたら記事の要約を表示できるようにします。本当は、記事自体を表示させたいのですが、ログインなしでは記事自体がとれないみたいなので今回は、記事の要約を表示するようにします。 まずは、前回作成した「BloggerTitleListActivity.java」を少し弄ります。

BloggerTitleListActivity.java

前回からの変更点は、getAllPost()メソッドの戻り値がStringクラスからEntryクラスに変更しました。それに伴って、onCreate()メソッドの中で使用していたArrayAdapterクラスを独自クラスのBloggerListArrayAdapterクラスに変更しました。

BloggerListArrayAdapterクラスについては、後ほど紹介します。getAllPost()メソッドをEntryクラスに変更した理由は、Bloggerの記事を取得するには、Entryクラスが必要で、今回の目的だと、いろんなところで使うのでStringクラスではなくEntryクラスを戻り値にしています。

そのほかには、リストで表示されている記事のタイトルをタップすると記事に移動するonListItemClick()メソッドを追加しました。このメソッドの中でIntentクラスを使って、EntryクラスをBloggerEntryPostActivity.javaに渡しています。通常のやり方では、Intentクラスを使って独自クラスであるEntryクラスをBloggerEntryPostActivity.javaに渡すことはできないのですが、Serializableインターフェイスを使用すれば、Intentクラスを使ってEntryクラスをBloggerEntryPostActivity.javaに渡すことができます。それを実現するためにSerializableインターフェイスを継承したEntrySerializableクラスを追加しました。

BloggerTitleListArrayAdapter.java

次に、「BloggerListArrayAdapter.java」についてです。さきほど「BloggerTitleListActivity.java」のonCreate()メソッドで使用したBloggerListArrayAdapterクラスの中身です。

このクラスは、「BloggerTitleListActivity.java」で作ったEntryクラスのArrayAdapterを、getViewでTextViewに渡してそうしてできたViewを「BloggerTitleListActivity.java」に返しています。entry.getTitle().getPlainText()で記事のタイトルを取得しています。

BloggerEntryPostActivity.java

次に、「BloggerEntryPostActivity.java」についてです。このクラスは、記事を表示します。(実際には要約です)

このクラスは、「BloggerTitleListActivity.java」でIntentを使った時に呼び出されます。Intentに付随しているEntrySerializableクラスを受け取って、Entryクラスを取り出し、記事のタイトルと日付と要約を取得してTextViewに渡しています。これらのTextViewを表示するためにレイアウトファイルを作成します。レイアウトファイルの追加は、クラスファイルを追加するときみたいに行います。

レイアウトファイルの追加方法

  1. プロジェクトから「新規」→「その他…」を選択 layout1
  2. 「Android」フォルダから「Android XMLレイアウト・ファイル」を選択して「次へ」ボタンをクリック layout2
  3. ファイル名を入力して「完了」ボタンをクリック layout3
  4. 完了

post_content.xml

BloggerEntryPostActivity.javaの表示するためのレイアウトが以下の通りです。

AndroidManifest.xml

最後にAndroidManifestを設定します。BloggerEntryPostEntry.javaが増えたためです。その追加をします。

これでBloggerの記事タイトルをタップするとその記事の要約が表示されます。

ピンバック

コメント

名前とEメールアドレスが必須です。

以下のHTMLタグが使用できます。 <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>