在一个类中,我在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/