我之前曾尝试为此找到答案,但找不到可以解决我问题的答案。我正在制作保留飞盘高尔夫分数的应用程序。我的 MainActivity 有 4 个按钮。新游戏、恢复游戏、课程和玩家。
Atm 当用户转到 ActivityPlayers(主活动中的播放器按钮)时,用户可以添加和删除播放器,并且共享首选项会保存该列表。但现在我还需要以某种方式获得相同的玩家列表,到那个 ActivityNewGame(主活动中的新游戏按钮),在那里我需要遍历该列表,并使用这些名称在 ActivityNewGame 列表中创建新项目。(不能直接从 ActivityPlayers 复制列表,因为在那个 recyclerview 中,这些项目具有与新游戏 recyclerview 不同的按钮,即使它们使用相同的名称列表。)
我试图做意图,但我意识到我不能使用它,因为当用户从 ActivityPlayers 添加或删除玩家时我必须访问 ActivityNewGame ...
这是我尝试的方式
这是我的 ActivityPlayers.java 方法。当用户向 mNamelist 添加新名称时将调用此方法。
private void addItem(int position) {
/** Get user input (name) **/
textAdd = findViewById(R.id.name_input);
/** Add name to the list **/
mNameList.add(position, new NameItem(textAdd.getText().toString().trim()));
/** sort that list **/
sortArrayList();
/** save changes to shared preferences **/
saveData();
/** Show changed list to user **/
mAdapter.notifyItemInserted(position);
/** Clear the input field **/
textAdd.getText().clear();
/** Send namelist to ActivitynewGame **/
Intent i = new Intent(ActivityPlayers.this, ActivityNewGame.class);
i.putExtra("PlayerList", mNameList);
startActivity(i);
}
这是我的 savedata() 方法,用于保存用户对 ActivityPlayers 中的名单所做的更改:
private void saveData() {
SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(mNameList);
editor.putString("task list", json);
editor.apply();
}
这是我的 ActivityNewGame:
public class ActivityNewGame extends AppCompatActivity {
private ArrayList<NewGamePlayerItem> mPlayerList;
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
这里的问题是我不想访问 ActivityNewGame,我只想从 ActivityPlayers 传递那个名单,当用户选择去制作一个新游戏(ActivityNewGame)时,那个玩家列表就会在那里。那么我应该做些什么不同的事情来做到这一点呢?
翻翻过去那场雪
拉风的咖菲猫
烙印99
相关分类