Java 如何使用putExtra()和getExtras()代码获取int值?
正如标题所说,我在下面尝试过,但没有成功。另外,我应该将Java 如何使用putExtra()和getExtras()代码获取int值?,java,android,android-intent,Java,Android,Android Intent,正如标题所说,我在下面尝试过,但没有成功。另外,我应该将getExtras()放在MainActivity.class中的什么位置?我在内部和外部都尝试了OnCreate(),但我的应用程序在启动时不断崩溃。我也找不到它崩溃的错误 设置活动类 public void onClick(View v) { Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
getExtras()
放在MainActivity.class
中的什么位置?我在内部和外部都尝试了OnCreate()
,但我的应用程序在启动时不断崩溃。我也找不到它崩溃的错误
设置活动类
public void onClick(View v) {
Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
intent.putExtra("isMeasurement", 2);
startActivity(intent);
}
public int isMeasurement = getIntent().getExtras().getInt("isMeasurement");
MainActivity.class
public void onClick(View v) {
Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
intent.putExtra("isMeasurement", 2);
startActivity(intent);
}
public int isMeasurement = getIntent().getExtras().getInt("isMeasurement");
这就是传递数据的方式
Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
intent.putExtra("isMeasurement", 2);
startActivity(intent);
在您的onCreate中
这就是在MainActivity中检索数据的方法
int isMeasurement = getIntent().getIntExtra("isMeasurement",0); // Here 0 is a default value.It could be anything acc to your requirement
在其他活动中获取数据时出现问题。 正确的方法如下所述:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
int isMeasurement = getIntent().getIntExtra("isMeasurement",0);
}
设置活动性:
及
主要活动:
它将在设置活动中可用,这没有任何意义?MainActivity中应该有一些代码,SettingsActivity中应该有一些代码,这就是我所拥有的。您不应该在
onCreate()之前调用getIntent()
,当您初始化public int isMeasurement
字段时,在这里似乎会发生这种情况。请看:@Flies是否是您的数据流,如MainActivity->SettingsActivity->MainActivity???是的,但我现在已全部修复,谢谢各位:)另外,我的问题有什么问题吗(比如太笨或什么的)?他们总是被否决。没什么好担心的,只是好奇它并没有改变这样一个事实:在onCreate()
之前不应该调用getIntent()
。请参阅:我从未提到过在onCreate之前应该调用getIntent()。如果我的回答不清楚,很抱歉。已对其进行编辑以消除任何混淆。是的,但public int isMeasurement
清楚地表明它是在onCreate()
之前进行求值的字段。您不能在方法中使用这样的public
修饰符。您是正确的。我以前没有注意到的错误。感谢您指出这一点@AndrzejZabost