将Json Data显示为android中的菜单项

时间:2015-05-19 10:45:14

标签: java android json parsing menuitem

我正在拿这样的Json Data(值和键)

new RequestTypes().execute().get();
        JSONObject object = new JSONObject(typesresponse);
        JSONObject object2 = object.getJSONObject("types");
       for(int i =0;i<object2.names().length();i++){
           key = object2.names().getString(i);
           value = object2.getString(key);
       }

我成功了,我有一个菜单项下拉列表,如下所示:

 public View.OnClickListener typedropdownlistener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        PopupMenu popup = new PopupMenu(PostPaq.this, v);
        //Inflating the Popup using xml file
        popup.getMenuInflater().inflate(R.menu.type_menu, popup.getMenu());
        popup.show();
        popup.setOnMenuItemClickListener(typemenulistener);
    }
};

我的问题是如何将'value'和'key'变量解析为我的菜单项XML?它是否有可能,因为我想将解析后的json数据显示为下拉状态,就像我现在正在显示的最后一段代码,但它的预定义,这就是为什么我要解析收到的json数据,所以它不会预定义?

1 个答案:

答案 0 :(得分:2)

在没有收到任何答案且没有研究结果后,我自己完成了所有工作,并且让它工作。这是我的解决方案,我是如何实现这一点的。我只改变了我点击内的所有内容,它很高兴地膨胀我的方式想!

 public View.OnClickListener typedropdownlistener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        popup = new PopupMenu(PostPaq.this,v);
        for(int i =0;i<object2.names().length();i++){
            try {
                key = object2.names().getString(i);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            try {
                value = object2.getString(key);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            //Inflating the Popup using xml file
            //popup.getMenuInflater().inflate(R.menu.type_menu, popup.getMenu());
            popup.getMenu().add(key+"-"+value);
        }
        popup.show();
        popup.setOnMenuItemClickListener(typemenulistener);
    }
};