首页 > 代码库 > 一步一实现视频播放器客户端(三)显示热门电影列表

一步一实现视频播放器客户端(三)显示热门电影列表

(三)
今天实现热门电影这块功能,主要是从服务器获取数据,然后显示在界面上。这块虽然说是从服务器获取电影信息数据,但是,没有用到http相关的知识,我们直接使用sdk包(56网提供的api),就能获取服务器返回的json格式的数据了。以后,我还会写一篇笑话客户端的完整例子,会讲http这块,现在就不多说了。

效果图:                                    


第2将,我们把主界面做好了,但是没有数据,今天,我们获取数据,绑定界面上。 在说下界面,顶部一个标题,显示app名字,一次下面是一排的按钮,这里按钮放在滚动控件里面,可以左右滑动,点击选择不同的按钮,来切换下面的类容,点击按钮时候,按钮会自定像左边或者右边滚动。中间,就是一个listview了,应该是很多个Listview,每个内容项对应一个listview,通过影藏显示,来控制具体显示哪个listview,listview只实现了,上拉加载功能,代码,很久以前做的,现在不想改了,需要下拉刷新,大家可以使用开源的代码来做,很简单方便的。
这个小功能的具体的代码如下,我去,代码有点多:
   
private ListView listView; // 展示数据的listview
        private HotAdpter adpter; // 绑定数据的适配器
        private ArrayList<MovieBean> beans; // 放置视频对象的集合 ,MovieBean是一个实体对象,在bean包建的
        private Map<Integer, HotAdpter> adpters; // 保存适配器的map集合,这个页面有多个频道。需要多个listview和adpter
        private static int post; // 记录当前点击的频道id
        private RadioGroup radioGroup; // 放置上面的各个频道按钮
        private LinearLayout layout; // 用来动态添加N个listview用的
        private String type; // 类别
        private boolean isResh; // 是否获取数据结束,防止listview滚动到最下面,重复获取数据
        private View pView; // 转圈圈view
        private int[] location; // 保存频道button的位置
        private String page = "1"; //分页用的
        private HorizontalScrollView scrollView;   //放置顶部button的
        private int flag;    //标示,记录当前,点击的是哪个button
        private int postion;   
        private int width;     //屏幕的宽度,用来计算顶部按钮暂用的宽度,以便向左或者右滑动相应的距离
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_hot);
                initData();
                initView();
        }

        @Override
        public void initView() {
                scrollView = (HorizontalScrollView) findViewById(R.id.hscroll);
                location = new int[2];  
                layout = (LinearLayout) findViewById(R.id.list_lin);
                radioGroup = (RadioGroup) findViewById(R.id.bar_rg);
                radioGroup.setOnCheckedChangeListener(this);
                pView = findViewById(R.id.pb);
                for (int i = 0; i < 13; i++) {   //应为了13个条目,创建13个listview
                        listView = (ListView) getLayoutInflater().inflate(
                                        R.layout.listview_item, null);   //用xml获取一个listview对象
                        listView.setId(i + 1);     //动态设置id
                        layout.addView(listView);   //把listview加在LinearLayout上面
                        type = MyData.rd;   //MyData里面放了一些常量,MyData.rd,表示热门这个栏目,具体请下源码看
                        if (i == 0) {   
                                listView.setVisibility(View.VISIBLE);    //刚进这个界面的时候,显示第一个listview,加载显示热门电影
                                post = 0;  
                                type = MyData.rd;
                                new Threads().start();     //开启一个线程获取热门电影
                        } else {
                                listView.setVisibility(View.GONE);   //影藏其他所有listview
                        }
                        setListener(listView);   //绑定事件监听

                }
        }

        private void setListener(ListView listView) {
                listView.setOnItemClickListener(new OnItemClickListener() {

                        @Override
                        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                        long arg3) {
  
在使用skd时候,需要在前面进行初始化操作:
<font color="#ff0000">这句话,在MyApplication里面调用的,</font><span style="color: rgb(255, 0, 0); line-height: 1.5;">MyApplication类继承</span><font color="#ff0000">Application  请在配置文件里面进行声明,</font><span style="line-height: 1.5; color: rgb(255, 0, 0);">在应用启动时候,会调用</span><span style="line-height: 1.5; color: rgb(255, 0, 0);">MyApplication里面的</span><span style="line-height: 1.5; color: rgb(255, 0, 0);">onCreate()方法,我们在里面调用</span>

  今天就是这样了,这里简单说了下代码,具体的详细代码,大家请看这里:
    http://pan.baidu.com/s/1qWJkQfE
      
   








     




一步一实现视频播放器客户端(三)显示热门电影列表