【发布时间】:2015-08-21 05:20:38
【问题描述】:
首先,我将 volley 库用于我的帖子请求。在这种情况下,我从服务器检索以下 json 格式作为响应。
{"status":"success","message":"Teams without a league have been
found.",
"teams":[{"ID":"31","team_name":"A Team"},
{"ID":"101","team_name":"The BEST team"},
{"ID":"109","team_name":"ael fc"},
{"ID":"110","team_name":"UK"},
{"ID":"111","team_name":"cyprus"},
{"ID":"112","team_name":"biochemisty"}
]
}
我做了所有必要的 JSON 反序列化并在列表中显示团队数组的对象。
现在我要做的是将所选团队的 ID 值存储在一个字符串数组中。有什么想法吗?
这是部分代码
final JsonObjectRequest jsonObjReq1 = new
JsonObjectRequest(AppConfig.URL_GET_ALL_LEAGUE_TEAMS, jsonObject,
new com.android.volley.Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG", response.toString());
try {
if(response.getString("status").equals("success")){
JSONArray teamsArray = response.getJSONArray("teams");
for(int i = 0; i< teamsArray.length(); i++){
teams = teamsArray.getJSONObject(i);
noLeagueMembersClass = new
NoLeagueMemberClass();
noLeagueMembersClass.
setTeamMember(teams.getString("team_name"));
noLeagueMembersClass.
setTeamMember(teams.getString("ID"));
noLeagueMemberList.add(noLeagueMembersClass);
listView.setAdapter(noLeagueAdapter);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setItemsCanFocus(false);
listView.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick
(AdapterView<?> parent, View view, int position, long id){
Toast.makeText(getApplicationContext(),"You
clicked"+position,Toast.LENGTH_SHORT).show();
}
});
}
}
} catch (JSONException e) {
e.printStackTrace();
}
我尝试以下方法
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
try {
final String teamId =
teams.getString("ID");
Log.d("teamId",teamId);
} catch (JSONException e) {
e.printStackTrace();
}
}
但我总是得到 teamId=120。例如,当我选择第一行时,我希望 teamId 等于 31。当我单击第二行时,我希望 teamId 等于 101,依此类推。我还不想将任何值传递给下一个活动。我希望下面的图片能让你明白我想要做什么。
换句话说,我希望我所做的每次点击都对应于 JSON 表。
【问题讨论】:
-
没有清楚的想法。您想在从列表视图中选择时获取 id 还是什么???
-
我想在从列表视图中选择时获取团队的 ID。显示为 json
-
创建一个 NoLeagueMemberClass 的数组列表,然后使用您正在执行的 for 循环在该数组列表中添加对象。
-
我有你所说的 ArrayList。我想我必须在 onItemClick 方法中做一些事情。但我不知道是什么。正如我所说,当我单击列表视图的一行时,我想要真正的团队 ID。所以需要在那里做点什么。
标签: android json android-listview android-json