Step3 ボタンの配置とブラウザ呼び出し
さて、「Step1 XML解析」で確認してもらうとわかるように、今回使用したYahoo! JAPAN® 提供のWeb APIでは取得した記事に対応したスマートフォン用のURLが取得することが出来ます。
そこで、取得した記事毎にボタンを設置し、そのボタンが押されたらブラウザを起動して記事のURLを開くというアプリケーションの作成を行いたいと思います。
今回のプログラムの流れは、はじめに取得したXMLファイルを解析し、記事のタイトルとURLを取得する、次に記事のタイトルとURLに関連付けられたボタンを表示する、ボタンが押されたら対応するURLをブラウザで開く、という物になります。
メンバ変数は記事に対応したURLを格納するmArticleURLを加えた以下の3つとなります。
static private String mArticleTitle[]; |
XMLファイルの解析を行うreadXMlは、String配列の確保にmArticleURL を加え、タグの内容がSmartphoneUrlだった場合にその内容を保存する処理を加えます。
public static void readXML(InputStream stream) int cntTitle = 0; } |
ListView内で扱う要素が記事のタイトルとURLになるためそれに対応したクラスListItemを作成します。
public class ListItem { public ListItem(String title, String url) { |
ListViewでListItemを扱うためにArrayAdapterを拡張したListArrayAdapterクラスを作成します。
public class ListArrayAdapter extends ArrayAdapter<ListItem> implements public ListArrayAdapter(Context context, ArrayList<ListItem> listItem) { } @Override public void onClick(View view) { startActivity(intent); |
(1) レイアウトの指定
ここではボタンの配置やレイアウトの指定を行っています。
(2) クリックによる動作
ここではクリックによる動作を指定して居ます。
view.getTagによってクリックされた列に対応するタグを取得し、
listItem.getでそのタグを引数とすることで列に対応したListItemを取得します。
取得したListItemのURLを利用してインテントの遷移としてブラウザを起動します。Intentの第一引数にandroid.intent.action.VIEWを、第二引数にURLを指定することでURLのページを開くインテントを作成出来ます。
onCreateは、ArrayListにListItemを格納する処理を加えて、以下のようになります。
protected void onCreate(Bundle savedInstanceState) { getArticle(createURL()); ListView list = (ListView) findViewById(R.id.ListView01); |
プログラムを実行すると、ボタンと記事のタイトルが対で表示されます。ボタンをクリックするとブラウザが起動し、記事のURLにアクセス出来ます。
第3回、第4回と2回にかけて通信アプリケーションの開発を行って来ました。
通信プログラムの流れはつかめたでしょうか?今回紹介した内容は他のAPI であっても応用できる内容が多く含まれていたと思います。興味を持った方はぜひ、ご自身で試してみてください。
それではお疲れ様でした!
今回コラムで使用したプログラムはこちらからダウンロード出来ます。
第4回 通信するアプリを作ってみよう(後編)
Step1 XML解析
Step2 ListViewによる記事の表示
Step3 ボタンの配置とブラウザ呼び出し
(文責:株式会社ベストクリエイト)
■免責事項