[英]putExtra() not working for Button:onClick
我有2个活动,我正在尝试将第一个活动的值放到第二个活动中。 在第一个活动中,我创建了一个带有onClick参数的按钮。
<Button
android:id="@+id/naviButton"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="navigate"
android:layout_alignParentBottom="true"
android:onClick="startNavigation"/>
然后在Activity SelectedDock中创建了2个方法:onCreate和startNavigation
public void startNavigation (View view) {
Intent GPSintent = new Intent(SelectedDock.this, GPSActivity.class);
String XCorValue = "What's wrong with you?!";
GPSintent.putExtra("SelectedXCor", XCorValue);
startActivity(GPSintent);
在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是项目中的第三个Activity,对于第一个和第二个,我也使用了Intent。
您将SelectedXCor作为putExtra
的键putExtra
并且SelectedXcor使用不同的键进行检索,这就是为什么您不检索数据的原因
只需更改此XCorTV.setText(getIntent().getExtras().getString("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"));
}
GPSintent.putExtra("SelectedXCor", XCorValue);
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”);
你会得到String;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.