【问题标题】:How to move to next json item in a json array via Onclicklistener如何通过 Onclicklistener 移动到 json 数组中的下一个 json 项
【发布时间】:2019-08-09 15:25:46
【问题描述】:

我有两个按钮 mPrevious 和 mNext。我正在尝试使用 OnclickListener 移动到我的 json 数组中的下一个项目,我很困惑。数组中的数据是包含 URL 和字符串文本的字符串。mPrevious 按钮的位置应返回 -1,但如果 currentPosition 为 0,则返回 0。

  "Team": [
      {
        "id": 0,
        "Name": "Leo Messi",
        "Position": "Forward",
        "videoURL": "www.youtube.com/watch?v=messi",
        "thumbnailURL": ""
      },
      {
        "id": 1,
        "Name": "Cristiano Ronaldo",
        "Postion": "Forward",
        "videoURL": "www.youtube.com/watch?v=ronaldo",
        "thumbnailURL": ""
      },





mNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                for (int i = 0; i < TeamListOj.getmTeam().size(); i++) {
                    i++;

                }

            }
        });

【问题讨论】:

    标签: java android json onclicklistener


    【解决方案1】:

    拥有一个全局静态变量,用于存储当前指数。 在 OnClickListener 中增加这个变量,你就有了当前的索引。

    也许不是最好的解决方案,但希望它有所帮助

    编辑: 这是一些代码:

    static int currentIndex = 0;
    
    mNext.setOnclickListener(...
    
      {
        //TODO check if index exceeds array size
        currentIndex++;
        String aString = myArray[currentIndex];
      }
     );

    【讨论】:

    • 同时检查数组索引的大小是否超出范围异常
    【解决方案2】:

    为什么不使用自定义类而不是 JSONArray?

    我会将您的“玩家”json 转换为一个类,并将您的“团队”数组转换为一个列表。例如,使用 Java 类 Linked List,您可以通过在任何项目上调用“next()”来简单地获取下一个元素。

    编辑:

    这是你的类的样子,你应该添加getter和setter。

    public class Player {
        private String videoURL;
    
        private String Position;
    
        private String id;
    
        private String Name;
    
        private String thumbnailURL;
    }
    

    现在,使用 Gson 转换器,您可以通过以下方式获取此类的实例:

    String json = "YOUR_JSON_HERE";
    
    Gson gson = new Gson();
    
    Car car = gson.fromJson(json, Player.class);
    

    【讨论】:

    • 我可以得到一个sn-p吗?
    • 我建议使用转换器,例如 Gson (github.com/google/gson)。
    • 用一些 sn-ps 编辑答案
    • 我已经有这样的课了。但我的问题是如何在 onClicklistener 中设置迭代方法,因为目前我编写的代码已经失效。 (对不起,离开了)
    猜你喜欢
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多