import
java.util.ArrayList;
import
java.util.HashMap;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.AdapterView;
import
android.widget.AdapterView.OnItemClickListener;
import
android.widget.ListView;
import
android.app.Activity;
/**
* Demo描述:
* 为ListView的Item设置不同的布局.
* 例如在该例子中ListView的第一个Item显示一张
* 图片,其余的Item都显示文字.
*
* 为了达到此目的需要重写BaseAdapter中的
* 1 getViewTypeCount()和getItemViewType(int position)方法.
* 1.1在getViewTypeCount中指定一共有几种不同的item
* 在此返回2即可.
* 1.2在getItemViewType(int position)中需要依据position的不同
* 返回不同的Type.
* 2 在getView()方法中针对不同的Type为Item设置布局
* 2.1得到当前位置(position)时的Type即代码:
* currentType= getItemViewType(position);
* 2.2依据Type的不同为Item设置布局
*
*
*/
public
class
MainActivity
extends
Activity {
private
ListView mListView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private
void
init(){
mListView=(ListView) findViewById(R.id.listview);
regeditedSelectAdapter=new RegeditedSelectAdapter(EmployeePlaySelect.this,user_Info_list);
lv.setAdapter(regeditedSelectAdapter);
mListView.setOnItemClickListener(
new
ItemClickListenerImpl());
}
}
/**适配器**/
public class RegeditedSelectAdapter extends BaseAdapter {
private Context context;
private ArrayList<PlaySelect> reg_list;
private LayoutInflater layoutInflater;
private final int TYPE_COUNT=2;
private final int FIRST_TYPE=0;
private final int OTHERS_TYPE=1;
private int currentType;
public RegeditedSelectAdapter(Context context, ArrayList<PlaySelect> reg_list) {
this.context = context;
this.reg_list = reg_list;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
/* if (reg_list==null) {
return 0;
} else {
}*/
return reg_list.size();
}
@Override
public Object getItem(int position) {
/*if (reg_list==null) {
return null;
} else {
if (position>0) {
return reg_list.get(position-1);
} else {
}*/
return reg_list.get(position);
//}
}
@Override
public long getItemId(int position) {
return position;
}
/***item不同布局设置***/
@Override
public int getViewTypeCount() {
return TYPE_COUNT;
}
@Override
public int getItemViewType(int position) {
if (position%2==0) {
return FIRST_TYPE;
} else {
return OTHERS_TYPE;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View firstItemView = null;
View othersItemView=null;
//获取到当前位置所对应的Type
currentType= getItemViewType(position);
System.out.println("type="+currentType);
PlaySelect playSelect = reg_list.get(position);//自己的list集合
if (currentType== FIRST_TYPE) {
firstItemView = convertView;
FirstRegViewHolder regViewHolder = null;
if (firstItemView == null) {
regViewHolder = new FirstRegViewHolder();
firstItemView = layoutInflater.inflate(R.layout.play_first_select_xml, null);
regViewHolder.col_name = (TextView) firstItemView.findViewById(R.id.col_name);
regViewHolder.outgo_bgt_adjust = (TextView) firstItemView.findViewById(R.id.outgo_bgt_adjust);
regViewHolder.outgo_execu = (TextView) firstItemView.findViewById(R.id.outgo_execu);
regViewHolder.outgo_total = (TextView) firstItemView.findViewById(R.id.outgo_total);
regViewHolder.outgobgt_bg = (TextView) firstItemView.findViewById(R.id.outgobgt_bg);
regViewHolder.loaned = (TextView) firstItemView.findViewById(R.id.loaned);
regViewHolder.current_available_e = (TextView) firstItemView.findViewById(R.id.current_available_e);
firstItemView.setTag(regViewHolder);
} else {
regViewHolder = (FirstRegViewHolder) firstItemView.getTag();
}
regViewHolder.col_name.setText(playSelect.getCol_name());
regViewHolder.outgo_bgt_adjust.setText(playSelect.getOutgo_bgt_adjust());
regViewHolder.outgobgt_bg.setText(playSelect.getOutgobgt_bg());
regViewHolder.outgo_total.setText(playSelect.getOutgo_total());
regViewHolder.current_available_e.setText(playSelect.getCurrent_available_e());
regViewHolder.loaned.setText(playSelect.getLoaned());
regViewHolder.outgo_execu.setText(playSelect.getOutgo_execu());
convertView=firstItemView;
}else{
othersItemView = convertView;
SecondRegViewHolder sregViewHolder = null;
if (othersItemView == null) {
sregViewHolder = new SecondRegViewHolder();
othersItemView = layoutInflater.inflate(R.layout.play_select_xml, null);
sregViewHolder.col_name = (TextView) othersItemView.findViewById(R.id.col_name);
sregViewHolder.outgo_bgt_adjust = (TextView) othersItemView.findViewById(R.id.outgo_bgt_adjust);
sregViewHolder.outgo_execu = (TextView) othersItemView.findViewById(R.id.outgo_execu);
sregViewHolder.outgo_total = (TextView) othersItemView.findViewById(R.id.outgo_total);
sregViewHolder.outgobgt_bg = (TextView) othersItemView.findViewById(R.id.outgobgt_bg);
sregViewHolder.loaned = (TextView) othersItemView.findViewById(R.id.loaned);
sregViewHolder.current_available_e = (TextView) othersItemView.findViewById(R.id.current_available_e);
othersItemView.setTag(sregViewHolder);
} else {
sregViewHolder = (SecondRegViewHolder) othersItemView.getTag();
}
sregViewHolder.col_name.setText(playSelect.getCol_name());
sregViewHolder.outgo_bgt_adjust.setText(playSelect.getOutgo_bgt_adjust());
sregViewHolder.outgobgt_bg.setText(playSelect.getOutgobgt_bg());
sregViewHolder.outgo_total.setText(playSelect.getOutgo_total());
sregViewHolder.current_available_e.setText(playSelect.getCurrent_available_e());
sregViewHolder.loaned.setText(playSelect.getLoaned());
sregViewHolder.outgo_execu.setText(playSelect.getOutgo_execu());
convertView=othersItemView;
}
return convertView;
}
class FirstRegViewHolder {
private TextView bgt_year;//预算年度
private TextView outgobgt_bg;//期初额
private TextView col_name;//栏目名称
private TextView outgo_total;//预算总额
private TextView outgo_bgt_adjust;//调整额
private TextView outgo_execu;//实际支出额
private TextView loaned;//贷款额
private TextView current_available_e;//目前可用额
private TextView pk_colarch;//栏目代码
}
class SecondRegViewHolder {
private TextView bgt_year;//预算年度
private TextView outgobgt_bg;//期初额
private TextView col_name;//栏目名称
private TextView outgo_total;//预算总额
private TextView outgo_bgt_adjust;//调整额
private TextView outgo_execu;//实际支出额
private TextView loaned;//贷款额
private TextView current_available_e;//目前可用额
private TextView pk_colarch;//栏目代码
}
}
如图: