Java putExtra()不适用于按钮:onClick
我有两个活动,我正在尝试将第一个活动的值放入第二个活动。在第一个活动中,我创建了一个带有onClick参数的按钮Java putExtra()不适用于按钮:onClick,java,android,android-intent,onclick,Java,Android,Android Intent,Onclick,我有两个活动,我正在尝试将第一个活动的值放入第二个活动。在第一个活动中,我创建了一个带有onClick参数的按钮 <Button android:id="@+id/naviButton" android:layout_width="match_parent" android:layout_height="60dp" android:text="navigate" android:layout_alignParentBottom="true"
<Button
android:id="@+id/naviButton"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="navigate"
android:layout_alignParentBottom="true"
android:onClick="startNavigation"/>
在GPSActivity中,我有:
public class GPSActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gps);
TextView XCorTV = (TextView) findViewById(R.id.textView2);
XCorTV.setText(getIntent().getExtras().getString("SelectedXcor"));
}
}
在我的应用程序中,我什么也看不到。任何文本。如果删除.setText,我可以看到TextView的默认值。我用了一个教程和一个简单的代码,但我的。。不怎么了?
我必须补充一点,SelectedDock是我项目中的第三个活动,在第一个和第二个活动中,我还使用了Intent 您将通过SelectedXCor作为
putExtra
中的键,并使用不同的键进行SelectedXCor检索,这就是您不检索数据的原因
只需更改这个XCorTV.setText(getIntent().getExtras().getString(“SelectedXCor”);
}
示例代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gps);
TextView XCorTV = (TextView) findViewById(R.id.textView2);
XCorTV.setText(getIntent().getExtras().getString("SelectedXCor"));
}
不要硬编码“SelectedXCor”,而是在另一个类中使用最终的静态变量,这样您就可以在整个应用程序中使用该变量,从而最大限度地减少此类错误
创建一个名为“IntentKeys”的类并声明一个变量
public static final String KEYCORE = "SelectedXCor";
现在你想用在哪里就用在哪里
GPSintent.putExtra(IntentKeys.KEYCORE, XCorValue);
XCorTV.setText(getIntent().getExtras().getString(IntentKeys.KEYCORE));
getIntent().getExtras。还给你一包
试试这个,getIntent().getStringExtra(“SelectedXCor”)
你会得到绳子 这是一个输入错误,键是
SelectedXCor
,而不是SelectedXCor
。在startNavigation
方法中,“C”是大写的。非常感谢您的回答。我还是忘了这个简单的规则。但是,我在前面使用字符串作为其他字符串对象的名称,一切都是正确的。在我的例子中,它是针对ListView项目的。非常感谢您提供此解决方案和建议。
public static final String KEYCORE = "SelectedXCor";
GPSintent.putExtra(IntentKeys.KEYCORE, XCorValue);
XCorTV.setText(getIntent().getExtras().getString(IntentKeys.KEYCORE));