我正在编写我的第一个Android应用程序。
我想在活动A中输入3个整数,并在活动B和C中执行相同的操作。然后我想用所有9个整数计算一些内容,并在活动D中显示结果。
如何将前3个活动中的整数转换为最后一个活动?
编辑: 我已经尝试了两个Activity ..来自MainActivity的输入中的整数,输出在ActivityView中的TextView中打印...但是Activity 2中的答案始终为零。
代码是: -
公共类MainActivity扩展了ActionBarActivity {
int int1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.bt1);
EditText et = (EditText) findViewById(R.id.edT1);
try{
int1 = Integer.parseInt(et.getText().toString());
} catch (NumberFormatException e)
{
e.printStackTrace();
}
b.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(MainActivity.this,Activity2.class);
i.putExtra("val1",int1);
startActivity(i);
}
});
}
}
活动2是: -
public class Activity2 extends Activity {
int value;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2xml);
TextView t2 = (TextView) findViewById(R.id.tt2);
Intent intent = getIntent();
int a = intent.getIntExtra("val1",0);
t2.setText("Bingo "+String.valueOf(a));
}
}
答案 0 :(得分:0)
您可以使用putExtra
方法发送原始数据类型。只需像这样使用它。
//in activity A
Intent myIntent = new Intent(this,ActivityB.class);
myIntent.putExtra("int1", 3);
myIntent.putExtra("int2", 5);
startActivity(myIntent);
//您可以在Activty B中获取此值
Bundle extras = getIntent().getExtras();
int int1= extras.getInt("int1");
int int2 = extras.getInt("int2");
你可以像这样继续将ActivityB发送到AcitivtyC,将ActivityC发送到ActivityD。
答案 1 :(得分:0)
您必须将Intent
中的值从活动传递到活动,直到活动D.
class ActivityA extends Activity {
...
private void startActivityB(){
Intent i = new Intent(this, ActivityB.class);
i.putExtra("val1", 1);
i.putExtra("val2", 1);
i.putExtra("val3", 1);
startActivity(i);
}
}
在ActivityB
中,您必须阅读从ActivityA
传递的值,并将这些值传递给ActivityC
新的值:
class ActivityB extends Activity {
...
private void startActivityC(){
int val1 = getIntent().getIntExtra("val1", 0);
int val2 = getIntent().getIntExtra("val2", 0);
int val3 = getIntent().getIntExtra("val3", 0);
Intent i = new Intent(this, ActivityC.class);
i.putExtra("val1", val1);
i.putExtra("val2", val2);
i.putExtra("val3", val3);
i.putExtra("val4", 5);
i.putExtra("val5", 6);
i.putExtra("val6", 7);
startActivity(i);
}
}
对ActivityC
执行相同的操作,并在ActivityD
中读取值。我希望你明白这一点。
顺便说一下。如果你知道Activity D应该显示总和,那么优化就是将总和从Activity传递给Activity而不是单个值。
答案 2 :(得分:-1)
将您在活动A,B,C中输入的值存储在SharedPreference对象中。 在活动D中检索该对象的所有值。
有关如何使用共享偏好的参考,请参阅 - http://developer.android.com/training/basics/data-storage/shared-preferences.html