以下代码是第三和第四活动的源代码。第三个活动接收用户输入并对其执行数学运算。然后将原始值和已处理值都发送到需要显示的第四个活动。我对使用意图并不十分熟悉。有人可以查看我的代码吗?它不起作用。
第三项活动
public class Third extends Activity {
double x=0, val1=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third);
final EditText et;
final Button b;
et = (EditText) findViewById(R.id.editText1);
b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Third.this, Fourth.class);
intent.putExtra("thetext", et.getText().toString());
startActivity(intent);
x=Double.parseDouble(et.getText().toString());
val1=(x*.04);
Intent in1 = new Intent(Third.this, Fourth.class);
in1.putExtra("thevalue1",val1);
startActivity(in1);
}
});
}
}
第四项活动:
public class Fourth extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.fourth);
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(getIntent().getExtras().getString("thetext"));
TextView wt1=(TextView) findViewById(R.id.textView12);
wt1.setText(getIntent().getExtras().getDouble("thevalue1"));
}
}
答案 0 :(得分:2)
您需要将两个额外内容放入一个Intent
,并且只需拨打startActivity(...)
一次。更改第三个Activity
的代码(在onClick(...)
方法中),如下所示......
Intent intent = new Intent(Third.this, Fourth.class);
intent.putExtra("thetext", et.getText().toString());
x=Double.parseDouble(et.getText().toString());
val1=(x*.04);
intent.putExtra("thevalue1",val1);
startActivity(intent);
答案 1 :(得分:1)
您正在开始两项不同的活动。我认为您想要的是设置多个intent extras然后开始活动:
@Override
public void onClick(View v) {
Intent intent = new Intent(Third.this, Fourth.class);
intent.putExtra("thetext", et.getText().toString());
x=Double.parseDouble(et.getText().toString());
val1=(x*.04);
intent.putExtra("thevalue1",val1);
startActivity(intent);
}
在您的示例中,您只启动了一项仅包含文本的活动,另一项只启动了双重。然而,在这两项活动中,您都试图获得两者的值。
另请注意,对于最终变量,您需要在声明时设置它们:
final EditText et = (EditText) findViewById(R.id.editText1);
final Button b = (Button) findViewById(R.id.button1);
答案 2 :(得分:0)
在第四项活动中这样做
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(getIntent().getStringExtra("thetext"));
TextView wt1=(TextView) findViewById(R.id.textView12);
wt1.setText(getIntent().getDoubleExtra("thevalue1"));
getExtras()
方法用于捆绑,您存储在意图
in1.putExtra("thevalue1",val1);