Java 如何使用信息附加ListView或替换

Java 如何使用信息附加ListView或替换,java,android,Java,Android,我正在编写一个复制外观的Android应用程序,我的问题如下-我有3个异步任务,挖掘json文件并提取每个部分的信息(本周上映,票房冠军,也在影院),但是当每个列表替换上一个列表时,我需要它们追加。我该怎么做 public static class PlaceholderFragment extends Fragment implements OnItemClickListener { private InfoAdapter adapter; public Placehold

我正在编写一个复制外观的Android应用程序,我的问题如下-我有3个异步任务,挖掘json文件并提取每个部分的信息(本周上映,票房冠军,也在影院),但是当每个列表替换上一个列表时,我需要它们追加。我该怎么做

public static class PlaceholderFragment extends Fragment implements OnItemClickListener {

    private InfoAdapter adapter;

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container,
                false);
        ListView list = (ListView) rootView.findViewById(R.id.list);
        list.setOnItemClickListener(this);
        adapter = new InfoAdapter(inflater);
        list.setAdapter(adapter);
        String link = "http://api.rottentomatoes.com/api/public/v1.0/lists/movies/box_office.json?apikey=pgmnsbx5sza3rys7uvtw";
        DownloadMovieInfo task = new DownloadMovieInfo(link, adapter);
        task.execute(new Void[0]);


         link = "http://api.rottentomatoes.com/api/public/v1.0/lists/movies/opening.json?apikey=pgmnsbx5sza3rys7uvtw";
        task = new DownloadMovieInfo(link, adapter);
        task.execute(new Void[0]);

        link = "http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json?apikey=pgmnsbx5sza3rys7uvtw";
        DownloadMovieInfo task2 = new DownloadMovieInfo(link, adapter);
        task2.execute(new Void[0]);

        return rootView;
    }
下面是异步任务

public class DownloadMovieInfo extends AsyncTask<Void, Void, MovieInfo> {
private String link;
private MovieInfo list;
private InfoAdapter adapter;

public DownloadMovieInfo(String link, InfoAdapter adapter) {
    this.link = link;
    this.adapter = adapter;
}

@Override
protected MovieInfo doInBackground(Void... params) {
    // TODO Auto-generated method stub

    URL url = null;
    URLConnection connection = null;
    Gson gson = new Gson();
    InputStream in = null;
    BufferedReader reader = null;
    try {
        url = new URL(link);
        connection = url.openConnection();
        in = connection.getInputStream();
        reader = new BufferedReader(new InputStreamReader(in));
        list = gson.fromJson(reader, MovieInfo.class);
    } catch (IOException e) {
        e.printStackTrace();
    }

    return list;
}

protected void onPostExecute(MovieInfo result) {
    super.onPostExecute(result);

    adapter.setinfo(result);
    adapter.notifyDataSetChanged();
}
public类下载movieinfo任务{
私有字符串链接;
私人电影信息列表;
专用信息适配器;
公共下载电影信息(字符串链接,信息适配器){
this.link=link;
this.adapter=适配器;
}
@凌驾
受保护的MovieInfo doInBackground(无效…参数){
//TODO自动生成的方法存根
URL=null;
URLConnection=null;
Gson Gson=新的Gson();
InputStream in=null;
BufferedReader reader=null;
试一试{
url=新url(链接);
connection=url.openConnection();
in=connection.getInputStream();
reader=新的BufferedReader(新的InputStreamReader(in));
list=gson.fromJson(reader,MovieInfo.class);
}捕获(IOE异常){
e、 printStackTrace();
}
退货清单;
}
受保护的void onPostExecute(MovieInfo结果){
super.onPostExecute(结果);
adapter.setinfo(结果);
adapter.notifyDataSetChanged();
}
}

我可以想象问题是adapter.setInfo(result);因为这实际上是将数据设置到列表中的内容,但是我没有完全弄清楚如何附加到列表中。请帮忙


PS从密钥中删除最后6位数字,因此它对您无效

请发布
InfoAdapter.setInfo()
的代码。您可以尝试adapter.addAll()和adapter.notifyDataSetChanged();只需在适配器中添加新方法。例如,追加数据(列表)。然后实现并调用它。酷,好的,这已经解决了谢谢你我只是需要这个小提示,也许你也可以帮我设置黑魔鬼,不知道如何将它们划分成类别