在一个类中,我在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,然后启动intent / activity。当它启动活动时,它应该做的是创建一个bundle和一个double变量,然后将iiso2
设置为iso2
,即9.0。我有未显示的代码显示iiso2
的值,但问题是它不显示9.0,而是显示10.54。有帮助吗?
答案 0 :(得分:0)
你需要在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" />
答案 1 :(得分:0)
不是将数据作为intent extra传递,而是创建一个包含数据的bundle,并通过intent传递该bundle。
类似于:
Bundle bundle = new Bundle();
bundle.putDouble("key", myDouble);
startActivity(new Intent(this, NextActivity.class).putExtras(bundle));
然后在接收活动中:
Bundle bundle = getIntent().getExtras();
if (bundle != null)
double myDouble = bundle.getDouble("key");