我已经被这个问题困了两个星期了,我希望有人能帮助我。提前致谢。
我想在一个活动中创建一个视图,该视图由标题视图和底部的列表视图组成。到目前为止,我已经成功地将数据从 JSON 获取到 listView,因为那里的大多数教程都只是关于 JSON 和 listView。
我的问题是,我怎样才能让下面的数据显示在标题、简单视图(非 listView)甚至我想要的视图上......
JSON文件
{
"photos" : [
{
"thumbnail" : "http://www.myserver.com/01.jpg",
},
{
"thumbnail" : "http://www.myserver.com/02.jpg",
},
{
"thumbnail" : "http://www.myserver.com/03.jpg",
},
],
"info" : [
{
"id" : "1",
"description" : "My White Toyota",
"country" : "Japan",
"year" : "1982"
}
];
"owners" : [
{
"ownerid" : "5633432",
"name" : "Jackson",
"year_own" : "1982-1985"
},
{
"ownerid" : "76832",
"name" : "Kurt",
"year_own" : "1986-1995"
},
{
"ownerid" : "236471",
"name" : "Alma",
"year_own" : "1999-2005"
}
]
}
列表类
public class car_detail {
private List<CAR_INFO_MODEL> photos;
private List<CAR_INFO_MODEL> info;
private List<CAR_INFO_MODEL> owners;
public List<CAR_INFO_MODEL> getPhotos(){
return photos;
}
public void setPhotoList(List<CAR_INFO_MODEL> photos){
this.photos = photos;
}
public List<CAR_INFO_MODEL> getInfos(){
return info;
}
public void setInfoList(List<CAR_INFO_MODEL> info){
this.info = info;
}
public List<CAR_INFO_MODEL> getOwners(){
return owners;
}
public void setOwnerList(List<CAR_INFO_MODEL> owners){
this.owners = owners;
}
}
模型类
public class CAR_INFO_MODEL {
private String description;
private String year;
private String thumbnail;
private String name;
private String year_own;
public String getDesc() {
return description;
}
public void setDesc(String description) {
this.description = description;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getPhoto() {
return thumbnail;
}
public void setPhoto(String thumbnail) {
this.thumbnail = thumbnail;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getYearown() {
return year_own;
}
public void setYearown(String year_own) {
this.year_own = year_own;
}
}
活动类(我使用 AsyncTask 查询并获取 JSON 响应),我可以成功地从 JSON 中获取信息对象,但不知道如何获取照片和所有者。
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.cardetail_layout);
lv = (ListView) findViewById(R.id.list_cardetail);
carArray = new ArrayList<CAR_INFO_MODEL>();
carDetailAdapter = new carDetailAdapter(carActivity.this, R.layout.caritem_layout, infoArray);
lv.setAdapter(carDetailAdapter);
try {
new DealSync().execute("http://www.myserver.com/carsquery/");
} catch(Exception e) {}
}
String json = client.getResponse();
list = new Gson().fromJson(json, car_detail.class);
return list;
protected void onPostExecute(car_detail infolist) {
for(CAR_INFO_MODEL lm : infolist.getInfo())
{
infoArray.add(lm);
}
carDetailAdapter.notifyDataSetChanged();
}
适配器类(我可以将信息显示为单个项目列表,但我不知道如何从数据中获取照片和所有者(底部列表视图)并显示它。)
public class carDetailAdapter extends ArrayAdapter<CAR_INFO_MODEL> {
int resource;
String response;
Context context;
private LayoutInflater dInflater;
public carDetailAdapter(Context context, int resource, List<CAR_INFO_MODEL> objects) {
super(context, resource, objects);
this.resource = resource;
dInflater = LayoutInflater.from(context);
}
static class ViewHolder {
TextView description;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
CAR_INFO_MODEL lm = (CAR_INFO_MODEL) getItem(position);
//Inflate the view
if(convertView==null)
{
convertView = dInflater.inflate(R.layout.carDetail_layout, null);
holder = new ViewHolder();
holder.description = (TextView) convertView.findViewById(R.id.cardesc);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.description.setText(lm.getDesc());
return convertView;
}
}
这可能听起来很复杂,只是希望有人能给我帮助。非常感谢