Step2 ListViewによる記事の表示
これまではプログラムのインターフェースにTextViewを使用してきました。
今回のプログラムでは複数の要素を扱うのに適したListViewを使用します。ListViewは多くのアプリケーションで用いられるインターフェースでGmailクライアントなどにも使われます。
プログラムの流れはレイアウトを作成し、ListViewとデータを関連付けるといった物になります。
それでは始めにレイアウトの作成を行いましょう。res/layout/main.xmlの内容を以下のように変更してください。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView> </LinearLayout> |
次にListViewの各行のレイアウトを作成します。res/layout/rowitem.xmlとして以下のファイルを作成してください。
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="32dip" android:gravity="center_vertical"/> |
今回からは表示内容に直接メンバ変数を使います。
今までhttpGetで行っていた処理を戻り値のないgetArticleで行うようにしましょう。
getArticleが正しく実行されればメンバ変数であるmArticleTitleに記事のタイトルが格納されます。
public static voidgetArticle(String strURL) { readXML(stream); stream.close(); |
最後に、onCreateにListViewオブジェクトの取得と ArrayAdapterによるデータの関連付けを行う処理を記述します。
protected void onCreate(Bundle savedInstanceState){ // (2) ListViewのオブジェクトの取得 |
(1) 記事のタイトルの取得
作成したメソッドを実行してmArticleTitleに記事のタイトルを格納します
(2) ListViewのオブジェクトの取得
TextViewと同様にmain.xmlで設定したListViewのオブジェクトを取得します
(3) アダプタの割り当て
ArrayAdapterクラスの第2引数には作成したレイアウトを,第3引数には表示内容となるStrnig配列をそれぞれ指定します
プログラムの実行結果は以下のようになります。 取得したタイトルの一覧が綺麗に表示できたと思います。だいぶアプリケーションらしくなってきたでしょうか。
次のステップでは、XML解析で得られる他の要素を使ってさらに発展させて行きましょう。
第4回 通信するアプリを作ってみよう(後編)
Step1 XML解析
Step2 ListViewによる記事の表示
Step3 ボタンの配置とブラウザ呼び出し