web-dev-qa-db-ja.com

Android:getIntent()はいつ使用しますか?

メソッドgetIntent()を使用する理由がわかりません。

そのメソッドが必要なときは、メソッドonActivityResult()を使用できるからです。

しかし、メソッドgetIntent()を使用すると、NullPointerExceptionが発生する可能性があります。

8
LKM

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のように、アクティビティから返されるデータを処理するためではなく、新しいアクティビティにデータを渡すためです。

20
Kenneth

getInentは、アクティビティから別のアクティビティにデータを渡すために使用されます。たとえば、startActivityというアクティビティからendActivityという別のアクティビティに切り替えて、そのデータをstartActivityendActivityで認識されるため、次のようにします。

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");
2
Rodrigo
_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);

0

実際、あるページから別のページにデータを送信したい場合は、getまたはput Intentを使用します

例:

Intent intent = new Intent(context, HomeActivity.class);
intent.putExtra("yourData", yourData);

からデータを取得する

Intent intent = getIntent();
intent.getExtra("yourData")   
0
shubham_08