メソッドgetIntent()
を使用する理由がわかりません。
そのメソッドが必要なときは、メソッドonActivityResult()
を使用できるからです。
しかし、メソッドgetIntent()
を使用すると、NullPointerException
が発生する可能性があります。
http://developer.Android.com/reference/Android/app/Activity.html#getIntent()
このアクティビティを開始した意図を返します。
たとえば、次のようにして、いくつかのデータでアクティビティを開始した場合
Intent intent = new Intent(context, SomeActivity.class);
intent.putExtra("someKey", someData);
新しいアクティビティでgetIntentを使用してこのデータを取得できます。
Intent intent = getIntent();
intent.getExtra("someKey") ...
つまり、onActivityResultのように、アクティビティから返されるデータを処理するためではなく、新しいアクティビティにデータを渡すためです。
getInent
は、アクティビティから別のアクティビティにデータを渡すために使用されます。たとえば、startActivity
というアクティビティからendActivity
という別のアクティビティに切り替えて、そのデータをstartActivity
はendActivity
で認識されるため、次のようにします。
startActivity
内:
String dataToTransmit="this info text will be valid on endActivity";
Intent intent =new Intent(this, endActivity.class);
intent.putExtra("dataToTransmitKey",dataToTransmit);
startActivity(intent);
endActivity
:
Intent intent = getIntent();
String dataTransmited=intent.getStringExtra("dataToTransmitKey");
_listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(ItemListView.this, ViewItemClicked.class);
String name = itemList.get(position).getString(1);
String description = itemList.get(position).getString(2);
String something_else = itemList.get(position).getString(3);
intent.putExtra("name", name);
intent.putExtra("description", description);
intent.putExtra("something_else", something_else);
startActivity(intent);
}
_
詳細アクティビティ:
_Intent intent = getIntent();
String name = intent.getStringExtra("name");
String description = intent.getStringExtra("description");
String something_else = intent.getStringExtra("something_else");
_
ここで、文字列を使用して目的の場所に値を表示します:as
edittext.setText(name);
実際、あるページから別のページにデータを送信したい場合は、getまたはput Intentを使用します
例:
Intent intent = new Intent(context, HomeActivity.class);
intent.putExtra("yourData", yourData);
からデータを取得する
Intent intent = getIntent();
intent.getExtra("yourData")