我正在尝试在android中的服务器上动态加载的菜单项和子菜单项上实现点击/项目选择。但是,我应该如何找出或定义从服务器加载的项目ID?
我正在以这种方式从服务器添加新菜单和子菜单......
private class HttpAsyncTaskCheckAsset extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
return GET(urls[0]);
}
@Override
protected void onPostExecute(String result) {
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
Menu m = navigationView.getMenu();
SubMenu topChannelMenu = m.addSubMenu("Assets");
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject jsonobject = jArray.getJSONObject(i);
JSONArray jsonAssets = jsonobject.getJSONArray("assets");
for(int j = 0; j < jsonAssets.length(); j++){
JSONObject jsonInnerObject = jsonAssets.getJSONObject(j);
String deviceName = jsonInnerObject.getString("name");
topChannelMenu.setIcon(R.drawable.ic_menu_share);
topChannelMenu.add(deviceName);
Log.d("ASEETS_NAME",deviceName);
JSONObject idObject = jsonInnerObject.getJSONObject("_id");
String oid = idObject.getString("$oid");
Log.d("ASEETS_NAME",oid);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
MenuItem mi = m.getItem(m.size()-1);
mi.setTitle(mi.getTitle());
}
}
还有其他新方法可以做同样的事情吗? 在这里,我找不到项目ID,这对于实现项目选择选项至关重要。我该如何解决这个问题?
答案 0 :(得分:0)
对于item_id,您可能希望使用: public abstract MenuItem add(int groupId,int itemId,int order,int titleRes)。 PLS。有关详细信息,请参阅菜单文档:
http://developer.android.com/reference/android/view/Menu.html#add(int,int,int,java.lang.CharSequence)