Php 需要一些帮助来为多级listview编写json^^
我正在尝试在我的应用程序中实现一个多级列表视图(基于android)。我正在与eclipse一起使用php和mysql 对于第一级listview,这是json(文件名:test1.php): 现在,对于第二级listview,其中引用的url将是Php 需要一些帮助来为多级listview编写json^^,php,android,mysql,json,Php,Android,Mysql,Json,我正在尝试在我的应用程序中实现一个多级列表视图(基于android)。我正在与eclipse一起使用php和mysql 对于第一级listview,这是json(文件名:test1.php): 现在,对于第二级listview,其中引用的url将是test2.php?id=1(或任何其他id号)-如何在test2.php中编写json 是否必须为上一个listview中的每个项目写入所有listview数据?或者我必须创建几个与前一个listview中的每个项目对应的test2.php文件吗 欢
test2.php?id=1
(或任何其他id号)-如何在test2.php
中编写json
是否必须为上一个listview中的每个项目写入所有listview数据?或者我必须创建几个与前一个listview中的每个项目对应的test2.php
文件吗
欢迎您提供建议、建议和教程链接。您的标题使用简单列表视图是ListActivity的一部分。为了用数据填充此列表,他们使用SimpleAdapter,并从服务器用JSON响应填充
ListAdapter adapter = new SimpleAdapter(
AlbumsActivity.this, albumsList,
R.layout.list_item_albums, new String[] { TAG_ID,
TAG_NAME, TAG_SONGS_COUNT }, new int[] {
R.id.album_id, R.id.album_name, R.id.songs_count });
适配器中的所有数据都取自
albumsList = new ArrayList<HashMap<String, String>>();
我认为在这个活动中,他们再次从服务器执行AsyncTask查询,并获得另一个JSON,其解析方式与第一个活动相同
如果您单击TrackerActivity中的歌曲,您将启动带有该歌曲双标题的新活动
更新2:
在服务器端,您需要为以下对象组织JSON Oblect生成器:
您是否在Java上编写应用程序?是本地android应用程序,还是使用基于php的android自定义框架?哦,是的,我使用的是JAVA。我刚才提到了很多。实际上,我以前已经成功地完成了教程。然后我想在listview中输出我自己的数据。上面提到的test.php文件在第一级listview中运行良好。现在我需要帮助为第二级listview制作test2.php。我不知道我应该写json对象。是的,你需要写和第一级几乎相同的json对象。但是这个JSON将只包含歌曲列表,而不是专辑。您应该根据相册id生成不同的对象。(我不理解您的问题,我想您问的是客户端,而不是服务器端)很抱歉进一步打扰您,但您能给我一些建议吗?您是否必须将这样的代码放入album_tracks.php(教程中的文件)中?{“id”:1,“专辑”:“127小时”,“歌曲”:[{“id”:1,“名字”:“再也听不到冲浪音乐”,“持续时间”:“5:52”},{“id”:2,“名字”:“峡谷”,“持续时间”:“3:01”}]}{“id”:2,“专辑”:“阿黛勒21”,“歌曲”:[{“id”:1,“名字”:“在深渊里打滚”,“持续时间”:“03:48”},{“id”:2,“名字”:“谣言已经存在”,“持续时间”:“03:43”}不,这段代码应该是这样的URI:album_tracks.php?id=1,在这里传递album的id。然后返回这个JSON对象:哦,我明白了。好啊非常感谢你的洞察力。帮了我很多忙。
albumsList = new ArrayList<HashMap<String, String>>();
// getting JSON string from URL
String json = jsonParser.makeHttpRequest(URL_ALBUMS, "GET",
params);
// Check your log cat for JSON reponse
Log.d("Albums JSON: ", "> " + json);
try {
albums = new JSONArray(json);
if (albums != null) {
// looping through All albums
for (int i = 0; i < albums.length(); i++) {
JSONObject c = albums.getJSONObject(i);
// Storing each json item values in variable
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
String songs_count = c.getString(TAG_SONGS_COUNT);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_ID, id);
map.put(TAG_NAME, name);
map.put(TAG_SONGS_COUNT, songs_count);
// adding HashList to ArrayList
albumsList.add(map);
}
}else{
Log.d("Albums: ", "null");
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
if (albums != null) {
// looping through All albums
for (int i = 0; i < albums.length(); i++) {
JSONObject c = albums.getJSONObject(i);
// Storing each json item values in variable
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
String songs_count = c.getString(TAG_SONGS_COUNT);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_ID, id);
map.put(TAG_NAME, name);
map.put(TAG_SONGS_COUNT, songs_count);
// adding HashList to ArrayList
albumsList.add(map);
}
}else{
Log.d("Albums: ", "null");
}
Intent i = new Intent(getApplicationContext(), TrackListActivity.class);
// send album id to tracklist activity to get list of songs under that album
String album_id = ((TextView) view.findViewById(R.id.album_id)).getText().toString();
i.putExtra("album_id", album_id);
startActivity(i);