android - 在启动 B 之前多次从活动 A 向 B 发送数据并显示所有数据发送
问题描述
我想在活动 A 上按下按钮时将数据从活动 A 发送到活动 B 而无需启动 B。这必须发生多次(多次单击按钮)并且我想存储所有信息,因此当我启动活动 B 时,我想显示我在 listView 中发送的所有项目。我在这里遇到问题,我只保存最后一次单击按钮。
这是我的活动A代码:
public class GameDetail extends AppCompatActivity implements View.OnClickListener {
String gameTitle;
String gamePrice;
protected void onCreate(Bundle savedInstanceState) {
gameTitle = getIntent().getStringExtra("GameTitle");
gamePrice = getIntent().getStringExtra("GamePrice");
FloatingActionButton botonAddToCart = findViewById(R.id.floatingButtonAddToCart);
botonAddToCart.setOnClickListener(this);
}
@Override
public void onClick(View v) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("GameTitleCart", gameTitle);
editor.putString("GamePriceCart", gamePrice);
editor.apply();
}
}
和活动B代码:
public class Carrito extends AppCompatActivity {
List<String> gameTitle = new ArrayList<String>();
List<String> gamePrice = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Map<String, ?> allEntries = prefs.getAll();
for(Map.Entry<String, ?> entry : allEntries.entrySet()){
if(entry.getKey() == "GameTitleCart"){
gameTitle.add(entry.getValue().toString());
}
else if (entry.getKey() == "GamePriceCart"){
gamePrice.add(entry.getValue().toString());
}
MyAdapter adapter = new MyAdapter(this, gameTitle, gamePrice);
listView.setAdapter(adapter);
}
活动 A 在另一个活动触发器上启动,因此我使用 Intent 处理数据。
感谢您的帮助。
解决方案
在活动 A 上,您可以将数据存储到一个数组中,然后当您想启动活动 B 时,只需通过 putExtra 将该数组传递给意图
推荐阅读
- python - 在 Python 中使用来自 R 的 BNLearn
- css - the property flex:1 does not serve to put my elements of the same size to cover 100% of the height of the container
- c++ - Eigen: Map real and imag MatrixXd to MatrixXcd
- ios - 如何使用 UIImageView 和单元格中的多个标签正确地进行约束?
- r - Implementing key-value pairs in Shiny selectInput
- javascript - THREE.js SpriteMaterial 发光纹理隐藏边缘
- genetic-algorithm - How could I use a Genetic Algorithm to solve this placement optimization problem?
- ruby-on-rails - 应该::Matchers::Independent::DelegateMethodMatcher: 未定义的方法`allow_nil'
- mongodb - How to resolve Cannot read property 'loadChildren' of undefined
- r - Assign names to inner list from function arguments