think itの記事でブラウザを作ってみる。

今回は、think itさんの記事を元に今までの復習を行いたいと思います。

記事は「簡易ブラウザの作成」です。(難易度的にちょうど良かったので。。)

第4回 簡易ブラウザの作成(その2)

第5回 簡易ブラウザの作成(その3)

ブラウザの作成に関しては、当ブログでも一度作成をしておりますが、さまざまな角度から作成をする事で新しい発見もあるかと思いまして、再度ブラウザの作成をしてみたいと思います。

第3回 までは、読み流しました。(設定や基本的な事だったので。。)

第4回 簡易ブラウザの作成(その2)

>今回はAbout画面を追加する作業を通して画面追加の仕方やメニューの操作方法について説明していきます。
前回は「閉じる」と「進む」「戻る」の実装だったので、about画面は作成してなかったです。

>AboutActivity.javaが新たに作成
と言う事なので、新しいActivityを作成してそこに移動をする形式で作成をしています。

移動のIntentに関しても次のように変更をする事が分かる。

Intent intentAboutActitvity = new Intent(this,AboutActivity.class);
startActivity(intentAboutActitvity);

>画面に戻るためには端末の戻るボタンを押すことになります。
一応移動先のアクティビティから、戻るには戻るボタンを押せばよい。となんとなく分かっていたのですが、やはりそうだったか。と思いました。

また、特に記載はなかったのですが、Intentの移動で戻る場合にトップを指定して戻ると、行き先が積み重なるって、戻る時に、再度同じ道をたどって戻る形になります。(home->about->home の場合 || 積み重なった場合には、homeで戻るを押すとaboutでアバウトで戻るで、homeとなる。)

 

AboutActivityの中に、ボタンを配置していた場合に、閉じるボタンを押した時にはfinish()が実行。で元のページに戻る。
つまり、finishn定義としては、「アプリケーションを終了」ではなく「アクティビティの終了」だった事がわかりました。

第5回 簡易ブラウザの作成(その3)

これも良くみると、「検索用のアクティビティ」を作成して、アクティビティ間でのデータのやり取りを行っています。

GoActivityを作成している。

intent.putExtra(THE_URL, edit.getText().toString());
setResult(RESULT_OK, intent);
finish()

と言う部分で、この終了に関して「結果を返す。」また、intentに関しては、(RESULT_OK)変数を返してこのアクティビティが終了する事がわかりました。

上記の場合に関して、ホームとなるアクティビティでは、次の関数が実行される。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  //ハンドリング対象外のリクエストは無視
  if (requestCode != GO_MENU_ID) {
   return;
  }
  //OKで以外で戻ってきたら何もしない
  if (resultCode != RESULT_OK) {
   return;
  }
  //URLが入力されたと見なしロードする
  WebView webView = (WebView)findViewById(R.id.main_webview);
  webView.loadUrl(data.getStringExtra(GoActivity.THE_URL));
}

上記の実行で、

IntentからRESULT_OKの場合にはwebView.loadUrl();で文字列を読み込む→文字列を検索

と言う形で、検索を実行している。

戻るボタンを押す事によってはRESULT_CANCELなどの値が戻るので、その場合に誤反応が起きないようにRESULT_OKの場合だけに制限などをしている。

ブラウザの使い方と言うより、Intentの値の受け渡しについて掘り下げて理解する事ができました!

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑