package com.example.listviewmoreitemloaddemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.example.listviewmoreitemloaddemo.adapter.MyBaseAdapter;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<String> list = new ArrayList<>();
for (int i = 0;i < 20;++i){
list.add("你是个饿货"+i);
}
lv = (ListView) findViewById(R.id.lv);
lv.setAdapter(new MyBaseAdapter(this,list));
}
}
————————————————–package com.example.listviewmoreitemloaddemo.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.listviewmoreitemloaddemo.R;
import java.util.List;
import static com.example.listviewmoreitemloaddemo.R.id.tvContent1;
import static com.example.listviewmoreitemloaddemo.R.id.tvContent2;
public class MyBaseAdapter extends BaseAdapter {
private static final int TYPE_1 = 0;
private static final int TYPE_2 = 1;
private List<String> list;
private Context context;
public MyBaseAdapter(Context context, List<String> list){
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
/**
* 得到你想要显示的布局类型
* @param position
* @return
*/
@Override
public int getItemViewType(int position) {
if(position % 2 == 0){
return TYPE_1;
}else{
return TYPE_2;
}
}
/**
*指定你要加载的条目类型
* @return
*/
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
ViewHolder2 viewHolder2 = null;
int type = getItemViewType(position);
switch (type){
case TYPE_1:
{
if(convertView == null) {
viewHolder = new ViewHolder();
convertView = convertView.inflate(context, R.layout.item1, null);
viewHolder.tvContent1 = (TextView) convertView.findViewById(tvContent1);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tvContent1.setText(list.get(position));
}
break;
case TYPE_2:
{
if(convertView == null){
viewHolder2 = new ViewHolder2();
convertView = convertView.inflate(context,R.layout.item2,null);
viewHolder2.tvContent2 = (TextView) convertView.findViewById(tvContent2);
convertView.setTag(viewHolder2);
}else{
viewHolder2 = (ViewHolder2) convertView.getTag();
}
viewHolder2.tvContent2.setText(list.get(position));
}
break;
}
return convertView;
}
static class ViewHolder{
TextView tvContent1;
}
static class ViewHolder2{
TextView tvContent2;
}
}