我有3项活动: 1- ItemMenu,2-斯诺克,3-台球
当我按下ItemMenu活动中的按钮来计算斯诺克和台球活动的总数时,它只是给出了我上一次去过的活动的总数,我需要它给我两个活动加在一起的总数
台球活动的代码如下:
public class Billiards extends AppCompatActivity {
EditText ebgames;
Button bsave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_billiards);
ebgames = (EditText)findViewById(R.id.ebgames);
bsave = ( Button )findViewById(R.id. bsave);
}
public void bsave (View v)
{
Double dbgames = Double.parseDouble(ebgames.getText().toString());
Double calcbgames = (dbgames)*0.50;
Double btotal = (calcbgames);
Intent btoim = new Intent(getApplicationContext(),ItemMenu.class);
btoim.putExtra("btot",btotal);
startActivity(btoim);
}以下是Snooker活动的代码:
public class Snooker extends AppCompatActivity {
EditText esgames;
Button ssave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_snooker);
esgames = (EditText)findViewById(R.id.esgames);
ssave = ( Button )findViewById(R.id. ssave);
}
public void ssave (View v)
{
Double dsgames = Double.parseDouble(esgames.getText().toString());
Double calcsgames = (dsgames)*1.00;
Double stotal = (calcsgames);
Intent stoim = new Intent(getApplicationContext(),ItemMenu.class);
stoim.putExtra("stot",stotal);
startActivity(stoim);
}下面是ItemMenu活动的代码:
public class ItemMenu extends AppCompatActivity {
Button snooker;
Button billiards;
TextView total;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_menu);
snooker = ( Button ) findViewById ( R.id. snooker ) ;
billiards = ( Button ) findViewById ( R.id. billiards ) ;
}
public void billiards (View v)
{
Intent billiards = new Intent(getApplicationContext(),Billiards.class);
startActivity(billiards);
}
public void snooker (View v)
{
Intent snooker = new Intent(getApplicationContext(),Snooker.class);
startActivity(snooker);
}
public void totcalc (View v)
{
Intent gettot = getIntent();
Double imfromb = gettot.getDoubleExtra("btot",0);
Double imfroms = gettot.getDoubleExtra("stot",0);
Double gtotal = imfromb + imfroms;
total.setText(String.valueOf(gtotal));
}发布于 2016-08-18 03:40:41
在您当前的版本中,每次ItemMenu启动时,您都应该获得onCreate()中的最新分数。然后,您可以将其添加到列表中或保留运行总数。
或者,您可以使用startActivityForResult()启动Snooker或Billiards。与我之前的建议类似,您可以在onActivityResult()中获得分数,然后保存分数列表,保存运行总数,或任何您想要的东西。
有关从活动返回结果的更多详细信息,请参见Getting a Result from an Activity和Starting Activities and Getting Results
发布于 2016-08-18 03:36:37
您可以将btotal和stotal值保存在SharedPreferences中,并从ItemMenu Activity访问它。
https://stackoverflow.com/questions/39004762
复制相似问题