/**
* マルチアクティビティ(その2)
* 〜暗黙インテントの使用例〜
*
* 一つのアクティビティから他のアクティビティを呼び出す際に、
* 特定のアクティビティを ”直接” 指定するのではなく、
*
* 呼び出すアクティビティに、処理してほしい内容を
* 指定して呼び出す。
*
* Androidがそのインテントを処理し適合するアクティビティを探して
* 自動的に起動し、処理する内容を渡す。
*
* システムにその処理を実行可能なアクティビティがない場合は
* その処理は実行されない可能性あり。
*
* 通常は、システムに標準装備されているアプリケーションの機能を
* 利用するため処理可能な内容であることを見込んで呼びだす場合が
* 多いかも。
*
*
* <Sample 概要>
* ___________________________________________________________
* 1.URLを指定して実行で、標準ブラウザで閲覧
*
* アクション; ACTION_VIEW (意味 データを表示)
* データ ; 入力したURLを、Uriクラスのparce()メソッドによってURIに変換したもの
*
* でインテント作成
*
* ____________________________________________________________
* 2.入力データを、WEBで検索
*
* a) アクション; ACTION_WEB_SEARCH (意味 WEB検索を実行)
* でインテント作成
*
* b) putExtra()メソッドでデータを渡す
*
* */
package com.example.intentexample;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class IntentExample extends Activity {
private EditText urlText, termText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
urlText = (EditText) findViewById(R.id.urlEditText);
termText = (EditText) findViewById(R.id.termEditText);
}
public void openMethod(View v) {
// 2番目のパラメータとしては、エディットテキストから取り出したURLを含む文字列を
// Uriクラスのparse()メソッドによってURIに変更して渡す。
Intent i = new Intent(
Intent.ACTION_VIEW,
Uri.parse(urlText.getText().toString()));
// インテントが示すアクティビティを起動
startActivity(i);
}
public void searchMethod(View v) {
Intent i = new Intent(Intent.ACTION_WEB_SEARCH);
// SearchManagerクラスのQUERYの名前で、検索したい語の文字列を
// データとして付加。
i.putExtra(SearchManager.QUERY,
termText.getText().toString());
startActivity(i);
}
}
【ポイント】
・インテントにアクションを指定すれば、他のアプリケーションのアクティビティを呼び出すことができる。
・インテントにアクションを指定する場合、それに付随させるデータを指定する方法には大別して2種類ある。
- http://sunfl0w3r.blog77.fc2.com/tb.php/49-da3ff38b
トラックバック
コメントの投稿