我是新来的Android
我已经学会了如何通过putextra传递activites之间的数据,在我的应用程序getextra
,当我从活性1传递数据和活性2到main_activity并添加数据和把它传递给第三活性(输出)
代替此外,只有要么活性1或活性2的值传递给输出正被传递(值被一个我在运行我的应用程序时最后输入的)
这里是我的应用程序的代码
Mainactivity如何活动之间传递数据和对数据进行算术运算
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent j = getIntent();
a= j.getDoubleExtra("double1",0.0);
Intent k = getIntent();
b = k.getDoubleExtra("double2",0.0);
result = a+b;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void on_click_activity1button(View view) {
Intent intent1 = new Intent(this,activity1.class);
startActivity(intent1);
}
public void on_click_activity2button(View view) {
Intent intent2 = new Intent(this,activity2.class);
startActivity(intent2);
}
public void on_click_outputbutton(View view) {
Intent intent3 = new Intent(this,output.class);
intent3.putExtra("result", result);
startActivity(intent3);
}
}
活性1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
}
public void on_click_activity1done(View view) {
EditText text1 = (EditText) findViewById(R.id.activity1edittext);
a=Double.parseDouble(text1.getText().toString());
Intent fromactivity1 = new Intent(this,MainActivity.class);
fromactivity1.putExtra("double1", a);
startActivity(fromactivity1);
}
}
Activity2.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2);
}
public void on_click_activity2done(View view) {
EditText text2 = (EditText) findViewById(R.id.activity2edittext);
b=Double.parseDouble(text2.getText().toString());
Intent fromactivity2 = new Intent(this,MainActivity.class);
fromactivity2.putExtra("double2", b);
startActivity(fromactivity2);
}
}
output.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.output);
Intent frommaindone = getIntent();
Double total = frommaindone.getDoubleExtra("result",0.0);
TextView show = (TextView) findViewById(R.id.resulttextview);
show.setText("addition is" + total);
}
}
请帮助我,并告诉我,我做错了什么
你这样做的方式是不正确的,你正在创建多个主要活动,没有人的数字将永远是错误的。看看startActivityForResult –
我也试过startActivityForResult,但同样的问题正在发生 – Navdeep
当我运行我的应用程序,并按下按钮1以获取textfrom(双)activity1之后,当我按下按钮2以获得textfrom(双)activity2,我认为来自activity1的变量值被销毁。我想知道如何保留它,以便我可以添加两个值a和b。 – Navdeep