Android:我们什么时候使用getIntent()?

Android:我们什么时候使用getIntent()?,android,android-intent,onactivityresult,Android,Android Intent,Onactivityresult,我不明白为什么我们使用方法getIntent() 因为,当我们需要该方法时,我们可以在ActivityResult()上使用方法 但是通过使用方法getIntent(),它可能会导致空点异常 返回启动此活动的意图 如果您使用一些数据启动活动,例如 Intent intent = new Intent(context, SomeActivity.class); intent.putExtra("someKey", someData); 您可以在新活动中使用getIntent检索此数据: Inte

我不明白为什么我们使用方法
getIntent()

因为,当我们需要该方法时,我们可以在ActivityResult()上使用方法

但是通过使用方法
getIntent()
,它可能会导致
空点异常

返回启动此活动的意图

如果您使用一些数据启动活动,例如

Intent intent = new Intent(context, SomeActivity.class);
intent.putExtra("someKey", someData);
您可以在新活动中使用getIntent检索此数据:

Intent intent = getIntent();
intent.getExtra("someKey") ...

因此,它不是用于处理活动返回的数据,如onActivityResult,而是用于将数据传递给新活动。

GetIntent
用于将数据从一个活动传递给另一个活动, 例如,如果要从名为
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);
Intent intent = getIntent();
String dataTransmited=intent.getStringExtra("dataToTransmitKey");
结束活动时

String dataToTransmit="this info text will be valid on endActivity";
Intent intent =new Intent(this, endActivity.class);
intent.putExtra("dataToTransmitKey",dataToTransmit);
startActivity(intent);
Intent intent = getIntent();
String dataTransmited=intent.getStringExtra("dataToTransmitKey");
现在使用字符串在所需位置显示值: as

edittext.setText(名称)

实际上,当您想将一些数据从一个页面发送到另一个页面时,请使用get或put Intent

例如:

Intent intent = new Intent(context, HomeActivity.class);
intent.putExtra("yourData", yourData);
从中检索数据

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

将数据发送回同一活动,getIntExtra()在我的情况下工作:

 protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     ...

     Button reset_btn = (Button) findViewById(R.id.reset);

     reset_btn.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) { 
             Intent intent= getIntent();               
             int counter = intent.getIntExtra("Num", 0);//"Num" is the key, 0 is an initial value
             counter = counter + 1;
             Log.d("number of reset >>>>>","counter= " + String.valueOf(counter));
             intent.putExtra("Num", counter);
             finish();
             startActivity(intent);
         }
     });
 }

你是说
活动#getIntent()
?想知道我应该把
getIntent()放在哪里。在onStart?一次创建?活动主线程?无论何时何地需要它,通常在onCreate中使用一次以提取所需的数据。但是也可以在其他任何地方使用,如果数据的使用是基于一些用户交互或其他什么。答案需要一些修改,因为
getExtra
方法被其他变体所取代,例如
getStringExtra
getExtras
(不确定
getExtra
是否存在)。
 protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     ...

     Button reset_btn = (Button) findViewById(R.id.reset);

     reset_btn.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) { 
             Intent intent= getIntent();               
             int counter = intent.getIntExtra("Num", 0);//"Num" is the key, 0 is an initial value
             counter = counter + 1;
             Log.d("number of reset >>>>>","counter= " + String.valueOf(counter));
             intent.putExtra("Num", counter);
             finish();
             startActivity(intent);
         }
     });
 }