//显示指定数量
BaseAdapter ada2=new BaseAdapter();//你的适配器
lv2.setAdapter(ada2);
ada2.notifyDataSetChanged();//设置数据源之后开始修改高度
View listItem = ada2.getView(0,null,listview);//从需要显示的listview中获取第一个view
listItem.measure(0, 0);//重新布局
//获取每一个子控件的高度*显示数量+listview的padding作为listview的高度
int totalHeight=(listItem.getMeasuredHeight()+listview.getDividerHeight()) * 3+listview.getPaddingTop()+listview.getPaddingBottom()
listview.getLayoutParams().height=totalHeight;//重新设置高度
//设置listview居中
int h1 = listview.getHeight();//获取listview高度
View v= listview.getChildAt(0);//获取当前listview显示的子类中的第一个子类
int h2=v.getHeight();
//listview.getFirstVisiblePosition()+1;表示选中中间
listview.setSelectionFromTop(listview.getFirstVisiblePosition()+1, h1 /2- h2/2-this.getPaddingTop());
BaseAdapter ada2=new BaseAdapter();//你的适配器
lv2.setAdapter(ada2);
ada2.notifyDataSetChanged();//设置数据源之后开始修改高度
View listItem = ada2.getView(0,null,listview);//从需要显示的listview中获取第一个view
listItem.measure(0, 0);//重新布局
//获取每一个子控件的高度*显示数量+listview的padding作为listview的高度
int totalHeight=(listItem.getMeasuredHeight()+listview.getDividerHeight()) * 3+listview.getPaddingTop()+listview.getPaddingBottom()
listview.getLayoutParams().height=totalHeight;//重新设置高度
//设置listview居中
int h1 = listview.getHeight();//获取listview高度
View v= listview.getChildAt(0);//获取当前listview显示的子类中的第一个子类
int h2=v.getHeight();
//listview.getFirstVisiblePosition()+1;表示选中中间
listview.setSelectionFromTop(listview.getFirstVisiblePosition()+1, h1 /2- h2/2-this.getPaddingTop());