Java 在我的案例中,需要在我的列表视图(仅标题)中仅显示一个对象

Java 在我的案例中,需要在我的列表视图(仅标题)中仅显示一个对象,java,android,listview,object,android-arrayadapter,Java,Android,Listview,Object,Android Arrayadapter,我正在使用一个Listview,在那里我得到一个Json响应,我使用Gson解析该响应,该响应包含标题、正文和图像。对于我的列表视图,我需要在标题上显示,我正在执行以下操作: Articles[] testCase = gson.fromJson(Bundlekey, Articles[].class); @SuppressWarnings("rawtypes") ArrayList list = new ArrayList();

我正在使用一个Listview,在那里我得到一个Json响应,我使用Gson解析该响应,该响应包含标题、正文和图像。对于我的列表视图,我需要在标题上显示,我正在执行以下操作:

Articles[] testCase = gson.fromJson(Bundlekey, Articles[].class);


            @SuppressWarnings("rawtypes")
            ArrayList list = new ArrayList(); 
            ArrayList<Articles> lst = new ArrayList<Articles>();
            for (int i = 0; i < testCase.length; i++) {
                list.add(testCase[i].getTitle());
                list.add(testCase[i].getBody());
                list.add(testCase[i].getImages());

                lst.add(testCase[i]);
                Log.e("DONE", testCase[i].getTitle().toString());   
            }

            final ArrayAdapter<Articles> adapter = new ArrayAdapter<Articles>(
                    activity, android.R.layout.simple_list_item_1, lst);
            activity.setListAdapter(adapter);
Articles[]testCase=gson.fromJson(Bundlekey,Articles[].class);
@抑制警告(“原始类型”)
ArrayList=新建ArrayList();
ArrayList lst=新的ArrayList();
for(int i=0;i
我将我的文章类定义为:

import java.io.Serializable;
import java.util.List;

import com.google.gson.annotations.SerializedName;

public class Articles implements Serializable{
    private static final long serialVersionUID = 8359220892008313080L;
    public List<Articles> results;

    @SerializedName("body")
    private String body;
    @SerializedName("title")
    private String title;
    @SerializedName("images")
    private List<Images> images;

    /*public Articles() {
        this.body = body;
        this.title = title;
        this.images = images;

    }*/

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public List<Images> getImages() {
        return images ;
    }

    public void setImages(List<Images> images) {
        this.images = images;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("***** Articles  *****\n");
        sb.append("BODY=" + getBody() + "\n");
        sb.append("TITLE=" + getTitle() + "\n");
        sb.append("IMAGES=" + getImages() + "\n");
        sb.append("*****************************");

        return sb.toString();
    }

}
import java.io.Serializable;
导入java.util.List;
导入com.google.gson.annotations.SerializedName;
公共类项目实现可序列化{
私有静态最终长serialVersionUID=8359220892008313080L;
公开名单结果;
@序列化名称(“正文”)
私有字符串体;
@序列化名称(“标题”)
私有字符串标题;
@序列化名称(“图像”)
私有列表图像;
/*公共物品(){
这个身体=身体;
this.title=标题;
这个。图像=图像;
}*/
公共字符串getBody(){
返回体;
}
公共体(字符串体){
这个身体=身体;
}
公共字符串getTitle(){
返回标题;
}
公共无效集合标题(字符串标题){
this.title=标题;
}
公共列表getImages(){
返回图像;
}
公共图像(列表图像){
这个。图像=图像;
}
@凌驾
公共字符串toString(){
StringBuilder sb=新的StringBuilder();
sb.附加(“*******条款******\n”);
sb.append(“BODY=“+getBody()+”\n”);
sb.追加(“TITLE=“+getTitle()+”\n”);
sb.追加(“IMAGES=“+getImages()+”\n”);
某人追加(“*******************************”);
使某人返回字符串();
}
}
我的列表显示的标题、正文和图像都混合在一起,我尝试了一些变通方法,但我似乎不太明白下一步该怎么做才能解决这个问题,即在listview中只显示标题

任何建议/解决方案都将不胜感激。

适配器
ArrayAdapter
正在使用
文章的字符串
将行显示到列表中。由于您已将所有三个属性用于
Articles
类的
toString()
,因此,正如您所说,这将显示所有三个属性


您只需在
toString()
中使用
title
,然后它将只显示标题作为列表行

toString()
代码替换为

@Override
public String toString() {
    // Return only title from this method to print title into list row.
    StringBuilder sb = new StringBuilder();
    sb.append("TITLE=" + getTitle() + "\n");
    return sb.toString();
    // OR
    // return getTitle(); // Better is to return this.title;
}

@Pankaj Kumar说的是对的。如果你不想弄乱你的
文章
类的结构,你可以将标题存储到一个新的
字符串[]
中,并用它初始化
数组适配器

也就是说,在填充包含所有
文章的
lst
之后:

String[] titles = new String[lst.size()];
int i = 0;
for(Articles article: lst) {
    titles[i] = article.getTitle();
    i++;
}
然后用
标题初始化
阵列适配器
,如下所示:

ArrayAdapter<Articles> adapter = new ArrayAdapter<Articles>(
                activity, android.R.layout.simple_list_item_1, titles);
activity.setListAdapter(adapter);
ArrayAdapter适配器=新的ArrayAdapter(
活动,android.R.layout.simple_list_item_1,标题);
activity.setListAdapter(适配器);