我正在拿这样的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数据,所以它不会预定义?
答案 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);
}
};