仿乐透购彩app(4)

89 阅读1分钟

仿乐透购彩app(4) 购彩实现

购彩界面的ListView的数据加载
使用万能适配器添加数据

    /**
     * 初始化购彩的item数据
     */
    private void initData() {
        datas = new ArrayList<Bean>();
        SubBean  bean= null;
        for (int i = 0; i < SystemData.main_tab1_list_icons.length; i++) {
            //icon, title, text;
            bean = new SubBean();
            bean.setIcon(SystemData.main_tab1_list_icons[i]);
            bean.setTitle(SystemData.main_tab1_list_titles[i]);
            bean.setText(SystemData.main_tab1_list_texts[i]);
            datas.add(bean);
        }

        /**
         * 购彩 ListView的item布局的适配器
         */
        goucai_adapter = new CommonAdapter<Bean>(datas, MainActivity.this, R.layout.goucai_item_layout){

            @Override
            protected void doView(MagicViewHolder mvh, Bean t) {
                // TODO Auto-generated method stub
                ImageView iv = (ImageView) mvh.getView(R.id.main_tab1_list_icon);
                TextView title = (TextView) mvh.getView(R.id.tab1_list_title);
                TextView text = (TextView) mvh.getView(R.id.tab1_list_text);
                SubBean bean = (SubBean)t;
                iv.setImageResource(bean.getIcon());
                title.setText(bean.getTitle());
                text.setText(bean.getText());
            }

        };
    }

代码实现:

package com.chb.letou;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.chb.letou.entity.Bean;
import com.chb.letou.entity.SubBean;
import com.chb.letou.util.data.SystemData;
import com.chb.letou.view.adapter.CommonAdapter;
import com.chb.letou.view.adapter.MagicViewHolder;

public class MainActivity extends Activity {
    /**
     * 购彩的的
     */
    private ListView main_goucai_lv;
    /**
     * 购彩的数据源
     */
    private List<Bean> datas;

    private CommonAdapter<Bean>  goucai_adapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        //初始化数据
        initData();

        initview();


    }
    /**
     * 初始化购彩的item数据
     */
    private void initData() {
        datas = new ArrayList<Bean>();
        SubBean  bean= null;
        for (int i = 0; i < SystemData.main_tab1_list_icons.length; i++) {
            //icon, title, text;
            bean = new SubBean();
            bean.setIcon(SystemData.main_tab1_list_icons[i]);
            bean.setTitle(SystemData.main_tab1_list_titles[i]);
            bean.setText(SystemData.main_tab1_list_texts[i]);
            datas.add(bean);
        }

        /**
         * 购彩 ListView的item布局的适配器
         */
        goucai_adapter = new CommonAdapter<Bean>(datas, MainActivity.this, R.layout.goucai_item_layout){

            @Override
            protected void doView(MagicViewHolder mvh, Bean t) {
                // TODO Auto-generated method stub
                ImageView iv = (ImageView) mvh.getView(R.id.main_tab1_list_icon);
                TextView title = (TextView) mvh.getView(R.id.tab1_list_title);
                TextView text = (TextView) mvh.getView(R.id.tab1_list_text);
                SubBean bean = (SubBean)t;
                iv.setImageResource(bean.getIcon());
                title.setText(bean.getTitle());
                text.setText(bean.getText());
            }

        };
    }
    /**
     * 初始化view
     */
    private void initview(){
        main_goucai_lv = (ListView) findViewById(R.id.main_tab1_list);

        main_goucai_lv.setAdapter(goucai_adapter);
        setListViewHeightBasedOnChildren(main_goucai_lv);
        goucai_adapter.notifyDataSetChanged();

    }


    /**
    * 动态设置ListView的高度
    * @param listView
    */
    public static void setListViewHeightBasedOnChildren(ListView listView) {
        if(listView == null) return;
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }
        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
    }
}