<<  < 2013 - >  >>
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31




package com.example.baidumap;

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



import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class Main extends Activity{
    private String[] adapterData = new String[] { "Afghanistan", "b", "b",
            "Algeria", "Algeria", "Algeria", "Algeria", "Algeria", "b", "b",
            "Algeria", "Algeria", "Algeria", "Algeria", "Algeria", "Algeria",
            "Algeria", "Algeria", "Algeria", "Algeria", "Algeria", "Algeria",
            "Algeria", "Algeria", "Algeria", "Algeria" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        List<HashMap<String, String>> list=new ArrayList<HashMap<String,String>>();
        for(int i=0;i<5;i++){
            HashMap<String, String> hashMap=new HashMap<String, String>();
            hashMap.put("aaa", "aaa"+i);
            list.add(hashMap);
        }
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.aa);
        LinearLayout layout=(LinearLayout)findViewById(R.id.id);
        for(int i=0;i<3;i++){
        
        TextView view=new TextView(Main.this);
        view.setText("cccccc");
        layout.addView(view);
        //layout2.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT ));
        //layout.addView(layout2);
        ListView view2=new ListView(Main.this);
        view2.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT ));
        
        layout.addView(view2);
        MyAdapter adapter=new MyAdapter(Main.this, adapterData);
        //SimpleAdapter adapter=new SimpleAdapter(Main.this,list , R.layout.item, new String[]{"aaa"}, new int[]{R.id.ids});
        view2.setAdapter(adapter);
        setListViewHeightBasedOnChildren(view2);
    }
        
    }
    
    class MyAdapter extends BaseAdapter {
        Context context;
        String[] adapterData;
        public MyAdapter(Context context,String[] adapterData){
            this.context=context;
            this.adapterData=adapterData;
        }
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return adapterData.length;
        }

        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return adapterData[arg0];
        }

        @Override
        public long getItemId(int arg0) {
            
            return arg0;
        }

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {
            // TODO Auto-generated method stub
            // super.initLinearLayout();
            if(arg1==null){
                arg1=LayoutInflater.from(context).inflate(R.layout.item, null);
            }
            TextView view=(TextView)arg1.findViewById(R.id.ids);
            view.setText(adapterData[arg0]);
            return arg1;
            
            
            
//            TextView tv = new TextView(MainActivity.this);
//            tv.setLayoutParams(new ListView.LayoutParams(
//                    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
//            tv.setText(adapterData[arg0]);
//            return tv;
        }
    }
    public void setListViewHeightBasedOnChildren(ListView listView) {    
        ListAdapter listAdapter = listView.getAdapter();    
        if (listAdapter == null) {    
            return;    
        }    
        int totalHeight = 0;    
        for (int i = 0; i < listAdapter.getCount(); i++) {    
            View listItem = listAdapter.getView(i, null, listView);    
            listItem.measure(0, 0);  //在还没有构建View 之前无法取得View的度宽。 在此之前我们必须选 measure 一下.   
            totalHeight += listItem.getMeasuredHeight();    
        }    
        ViewGroup.LayoutParams params = listView.getLayoutParams();    
        params.height = totalHeight    
                + (listView.getDividerHeight() * (listAdapter.getCount() - 1));    
        // params.height += 5;// if without this statement,the listview will be    
        // a    
        // little short    
        // listView.getDividerHeight()获取子项间分隔符占用的高度    
        // params.height最后得到整个ListView完整显示需要的高度    
        listView.setLayoutParams(params);    
    }    
    

}

发表评论:
天涯博客欢迎您!