您好,匿名用户
随意问技术百科期待您的加入

Android中怎么滑动切换listview中的item

0 投票

我已经在listview中通过SimpleAdapter绑定了不同数据
我想知道像那种新闻客户端一样在listview中点击某一个新闻的标题后进入查看新闻详情
在这个对应的一条新闻详情中继续查看下一条新闻的详情时,可以通过左右滑动实现不同新闻的切换,这种效果是怎样实现的啊?

用户头像 提问 2014年 3月8日 @ Dr. Mundo 上等兵 (281 威望)
分享到:

1个回答

0 投票
 
最佳答案

新闻详情页其实是个ViewPager,明白了么?

提供点伪代码给你看看

class News {
    int id; // 新闻标识
    String summary; // 概述
    String imageUrl; // 图片资源链接
}

class NewsDetail {
    int id; // 新闻标识
    String summary; // 概述
    String detail; // 详细
}

我们的ListView对应的Adapter里面引用的数据源就是
ArrayList<News>列表。
可以把这个列表缓存在Application里做一个全局变量。

然后你点击进入一个新闻详情

OnItemClickListener(new ...() {

    void onItemClick() {
        Intent i = new Intent(context, NewsDetailActivity.class);
        i.putExtra("id", id);
        startActivity(i);
    }
});

NewsDetailActivity是简单的新闻详情页面
里面主要的控件是ViewPager,他的数据源是根据之前的NewsList而来的。
ArrayList<NewsDetail> detailList = new ArrayList<NewsDetail>();

onCreate 方法里面最后通过一个异步方式去获取新闻的详情,然后显示出来。

class NewsDetailTask extends AsyncTask<String, Void, Void> {
    onBackground() {
        // 缓存里面获取新闻详情或者
        // http get/post("...");获取新闻详情
        // 显示出来
    }
}

设置OnPageChangeListener,在onPageChanged方法里面去调整当前页面展示的新闻详情

class MyOnPageChangeListener implements OnPageChangeListener {
    void onPageSelected(int position) {
    
        int id = ((XXApplication) getApplication()).getNewsList().get(position).getId();
        new NewsDetailTask("" + id);
    }
}

就可以了。

用户头像 回复 2014年 3月7日 @ 我和小伙伴们都惊呆了 上等兵 (156 威望)
选中 2013年 9月7日 @Dr. Mundo
提一个问题:

相关问题

0 投票
0 回复 68 阅读
0 投票
0 回复 20 阅读
用户头像 提问 2012年 12月1日 @ Cho'Gath 上等兵 (267 威望)
0 投票
1 回复 291 阅读
0 投票
1 回复 33 阅读
0 投票
1 回复 29 阅读
用户头像 提问 2012年 12月1日 @ Caitlyn 上等兵 (452 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...