专家
我正在尝试将JSONData送到ListView
它的工作正常,但问题是我想将每行的json数据传递给下一个视图
这里是我的JSON课程
public class GetJSON extends AsyncTask<String, Void, ArrayList<JSONFields>> {
@Override
protected ArrayList<JSONFields> doInBackground(String... params) {
// TODO Auto-generated method stub
try {
String url = params[0];
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response;
response = client.execute(get);
InputStream content = response.getEntity().getContent();
BufferedReader reader;
reader = new BufferedReader(new InputStreamReader(content));
String line;
String json = "";
while ((line = reader.readLine()) != null) {
json += line;
}
JSONArray array = new JSONArray(json);
ArrayList<JSONFields> alData = new ArrayList<JSONFields>();
for (int i = 0; i < array.length(); i++) {
obj = array.getJSONObject(i);
data = new JSONFields();
data.setID(obj.getString("id"));
data.setTitle(obj.getString("title"));
data.setImage(obj.getString("image"));
data.setYoutube(obj.getString("youtube"));
data.setLength(obj.getString("length"));
alData.add(data);
}
System.out.println("Data returned sucessfully");
return alData;
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ArrayList<JSONFields> result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
CustomAdapter adapter = new CustomAdapter(MainApp.this, result);
listview.setAdapter(adapter);
}
}
我有用于保存JSON数据字段的创建类
这里是
公共类JSONFields {
private String id;
private String title;
public String getID() {
return id;
}
public void setID(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
但是当我传递这段代码时
String thetitle = data.getTitle();
Intent showView = new Intent(MainApp.this, Show.class);
showView.putExtra("title", thetitle);
startActivity(showView);
我只获得最后一行信息..
这是我的问题
我想如果点击第5行,请参阅show view
中第5行的attr我是Java和android的新手
我认为我应该将位置添加到getTitle(位置)
获得&lt;因为在iOS开发中,我将数组objectAtIndex:int的数据传递给NSDic
全部
但是这里&lt;我不知道
提前致谢
答案 0 :(得分:0)
您可以使用onItemClickListener来获取点击视图的位置, 而且您可以从列表中或从已设置为适配器的数组中获取相同的对象。