Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用putExtra()和getExtras()代码获取int值?_Java_Android_Android Intent - Fatal编程技术网

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