在一个类中,我在onCreate方法之外声明了以下变量:

Double isowei2 = 9.36;
Double iso2 = 10.54;


在onCreate方法中,我有这个:

final Intent start = new Intent(IsoAbun.this, IsoAbunCal.class);
    public void onClick(View arg0) {
        isowei2 = 9.0;
        iso2 = isowei2;
        start.putExtra("iso2", iso2);
        startActivity(start);
    }


那两个代码在一个类中。在另一个类中,我在onCreate方法中具有以下内容:

    Bundle b = getIntent().getExtras();
    Double iiso2 = 0.0;
    iiso2 = b.getDouble("iso2");


据我了解,应该做的是,当我单击第一个类中的按钮时,它将isowei2重新分配为9.0,将iso2设置为9.0,然后创建一个名为iso2的键,并传递值iso2,即9.0,然后启动意图/活动。启动活动时,它应该做的是创建一个包和一个double变量,然后将iiso2设置为iso2,即9.0。我未显示显示iiso2值的代码,但问题是它不显示9.0,而是显示10.54。有什么帮助吗?

最佳答案

您需要在onCreate中进行如下设置:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.<your layout>);
final Intent start = new Intent(this, <OtherClass>.class);
Button btn = (Button)findViewById(R.id.btnId);//find from your activity xml, your button Id
btn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    isowei2 = 9.0;
            iso2 = isowei2;
            start.putExtra("iso2", iso2);
            startActivity(start);
                    }
            });
}


在另一个类oncreate方法中,可以使用TextView进行查看,例如:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle b = getIntent().getExtras();
    Double iiso2 = 0.0;
    iiso2 = b.getDouble("iso2");
    // Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(20);
    textView.setText(iiso2.toString());
    setContentView(textView);
}


如果您没有为按钮分配ID,请参见以下示例,以了解其在布局xml中的外观:

 <Button
        android:id="@+id/btnId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />

关于java - Intent.getExtras无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25191169/

10-12 03:32