如何在按钮单击时在列表视图中切换项目(在第二个活动页面上的文本视图中投影)?

时间:2018-04-10 07:22:39

标签: java android xml android-studio

我有一个listView(用于在我的登录页面上的edittext中输入的玩家姓名)。我的第二个活动页面(实际游戏是指那些玩家名称(在这里可以看到屏幕顶部的第一个项目:

enter image description here

为了做到这一点,我在登录页面上创建了以下意图:

public void openActivity2() {
    Intent intent = new Intent(this, Gamescreen.class);
    String s= list.get(0);
    intent.putExtra("Name1", s);
    startActivity(intent);
}}

在游戏画面中,我这样称道:

Intent iin= getIntent();
Bundle b = iin.getExtras();

if(b!=null)
{
    String j =b.getString("Name1");
    playerturn.setText(j);
}

基本上我想要的是当我按下游戏屏幕上的按钮(下一个玩家)时,它从列表上的第一个玩家名称移动到第二个玩家名称。就像你一直点击下一个播放器按钮 - >你在列表中向下移动。

我需要为点击按钮制作一个onclicklistener,但是如何以我接近它的当前方式完成剩下的工作呢?非常感谢!

1 个答案:

答案 0 :(得分:0)

我要做的是将名称字符串列表存储到本地存储中,如登录页面中的SharedPreferences:

    Gson gson = new Gson();
    String playerNameListString = gson.toJson(list);
    SharedPreferences.Editor editor = getSharedPreferences("prefs_file_name", 0).edit();
    editor.putString("player_name_list", playerNameListString);
    editor.commit();

在游戏屏幕中,使用以下命令恢复名称字符串:

    String playerNameListString = getSharedPreferences("prefs_file_name", 0).getString("player_name_list", null);
    Gson gson = new Gson();
    final String[] playerNameArray = gson.fromJson(playerNameListString, String[].class);
    nextplayer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            playerIndex++;
            if (playerIndex > playerNameArray.length) {
                playerIndex = 0;
            }
            playerturn.setText(playerNameArray[playerIndex]);
        }
    });