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

公開日 : 最終更新日 :

カテゴリー :

MacでAndroidアプリを作ってみる(第4回目)」の続きです。
前回は、ブログの記事の要約を取得できました。前回までは、BloggerにログインせずにGoogle Data APIで出来ることをやっていきました。今回から、BloggerにログインしてGoogle Data APIをもっと活用していきます。その第一歩として、Bloggerにログインして記事をとれるようにコードを追加していきます。

SetBloggerAccountActivity.java

まずは、BloggerServiceを使ってGoogleアカウントを読み込むログイン画面のアクティビティを追加します。

このアクティビティの動きを説明します。BloggerTitleListActivityから呼ばれる形で動きます。レイアウトファイルを読み込む以外は、ボタンがクリックされるまで何か処理を動かすようなことはありません。ボタンをクリックされたら、EditTextで入力された内容を読み込みます。読み込んだ内容が空の場合は、未入力というトーストを出します。入力されていたらBloggerServiceのsetUserCredentials()メソッドでGoogleアカウントの正否をします。違っていればトーストで違うことを表示してコードを終了します。正しければそのアカウント情報をプリファレンスに保存します。保存したあとは、BloggerTitleListActivityにGoogleアカウントを返すようにインテントを設定してアクティビティを終了します。

set_blogger_account.xml

次にさきほど作ったアクティビティのレイアウトを追加します。

BloggerTitleListActivity.java

このレイアウトファイルで特に変わっていることをしてないので書くことはありません。次にこのアウティビティを活用するようにメインのBloggerTitleListActivityを変更します。

BloggerTitleListActivityで変わったことが多いので箇条書きにしました。以下がそのリストです。

  • SharedPreferencesを追加
  • GoogleアカウントがなかったらSetBloggerAccountActivity.javaに移動するインテントを追加
  • SetBloggerAccountActivity.javaからのインテントリザルトをもってくるonActivityResult()メソッドを追加
  • Bloggerの記事のタイトルリストをメソッド化
  • BloggerServiceにGoogleアカウントの情報を追加

SharedPreferencesを追加

リストの最初から説明します。まず、SharedPreferencesは、SetBloggerAccountActivityで保存したGoogleアカウントの情報を取得するために使います。

GoogleアカウントがなかったらSetBloggerAccountActivity.javaに移動するインテントを追加

次にそのGoogleアカウントの情報を使ってif文でGoogleアカウントの有無を調べて、なければインテントをつかってSetBloggerAccountActivityに渡します。このときのインテントはSetBloggerAccountActivityのリザルトがほしいのでstartActivity()メソッドではなく、startActivityForResult()メソッドを使用します。Googleアカウントがある場合は、その情報を使って記事のタイトルリストを取得します。

SetBloggerAccountActivity.javaからのインテントリザルトをもってくるonActivityResult()メソッドを追加

SetBloggerAccountActivityからの結果を受け取るためにonActivityResult()メソッドを追加しています。

Bloggerの記事のタイトルリストをメソッド化

onActivityResult()メソッドで、インテントの中身を受け取り記事のタイトルリストを取得します。

BloggerServiceにGoogleアカウントの情報を追加

onCreate()メソッドとonActivityResult()メソッドで記事のタイトルリストを取得するコードが重なったのでコードを軽くするために記事を取得する部分とBloggerTitleArrayAdapterにEntryを渡すコードを統合してメソッド化しました。このメソッドの中のBloggerServiceにGoogleアカウントを追加するコードも追加しました。

BloggerEntryPostActivity.java

次に記事を表示するBloggerEntryPostActivityを一部変更します。

entryBodyでgetSummary()メソッドを使っていましたが、それをgetHTML()に変更します。変更にあたって必要なTextContentやHTMLTextConstructを使ってString型のHTMLコードを取得しています。取得したHTMLコードをTextViewで表示するのではなくてWebViewを使って表示しています。

String.xml

最後にStrings.xmlです。前回から使っていたのですが、お見せするのを忘れていました。

Strings.xmlは、プロジェクトの「res」→「values」にあります。このファイルは、文章を保存するファイルで複数箇所で同じ文章を使ったりするのを可能します。注意点としてGoogleアカウントで2段階認証を導入している場合は、BloggerServiceでログイン出来ませんのでご注意ください。

ピンバック

コメント

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

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