我有一项名为" PurcahseActivity"并在那里显示用户交易的价值。 "总计:€1138.50"在附图中。 该值是在用户进行购买后生成的。
我还有另一项名为" SalesReportActivity"在这里,我需要在这个布局中显示相同的值。
实现这一目标的最佳方法是什么?
这是我的PurchaseLayout.xml。 ' net_total'是显示的值的ID。
implements View.OnClickListener
@Override
public void onCreate(Bundle savedInstanceState) {
ImageButton imgButton =(ImageButton)findViewById(R.id.imageButton);
imgButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageButton:
Toast.makeText(getApplicationContext(),"You download is resumed",Toast.LENGTH_LONG).show();
break;
}
}
我已经研究了很多但是找不到针对这个具体问题的任何解决方案。基本上,我只想在salesReport中显示相同的值。
答案 0 :(得分:0)
最简单的方法:
在PurcahseActivity中,用户完成购买后,将此值保存到sharedPreferences。
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.edit().putFloat("total", value).apply();
在SalesReportActivity中加载此值:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
float value = sharedPreferences.getFloat("total", 0f);
答案 1 :(得分:0)
我知道有三种方法可以帮到你:
Intent.putExtra
并在第二个活动中检索该值SharedPreferences
然后获取
它在任何需要的地方我没有给你任何代码,因为这3种方法中的每一种都是众所周知的并且多次解释过。您可以随时了解如何使用
SharedPreferences
和Intents
。至于EventBus
,它有很好的文档,但如果你仍然有使用它的问题,请随时ping我或在这里写一个问题。
答案 2 :(得分:0)
通过活动传递信息的常规方法是在启动活动时使用Intent。在源活动中,
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("YOUR_FLAG", yourValue);
startActivity(intent);
然后在你的TargetActivity中,例如在onCreate(...)
float yourValue;
Bundle extras = getIntent().getExtras();
if (extras != null) {
yourValue = extras.getFloat("YOUR_FLAG");
}
要将数据保存在两个以上的活动中,请使用SharedPreferences。如果需要更复杂的解决方案,还有其他方法,如数据库,文件甚至EventBus。