繁体   English   中英

putExtra()不适用于Button:onClick

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM