主要是要注意在父ListView的適配器裏判斷子ListView的position是否爲空,如果爲空則不加載
if(crimes.get(position)!=null)
{
holder.txtshow.setAdapter(new CarMessgeAdapter(crimes.get(position)));
}
完整的適配器代碼
package com.example.tangweilong.demo;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by liying on 2016/11/20.
*/
public class MyAdap extends BaseAdapter {
private ArrayList<Friend> friends;
private ArrayList<Crime> crimes;
public MyAdap(ArrayList<Friend> friends,ArrayList<Crime> crimes) {
this.friends = friends;
this.crimes = crimes;
}
@Override
public int getCount() {
return friends.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
View view = convertView;
if (view == null) {
view = View.inflate(parent.getContext(), R.layout.activity_testlist, null);
holder = new ViewHolder();
holder.tv_first = (TextView) view.findViewById(R.id.tv_first);
holder.txtshow = (ListView) view.findViewById(R.id.txtshow);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
String pinpai=null;
//如果爲空則不加載,否則程序會停止
if(crimes.get(position)!=null)
{
pinpai=crimes.get(position).getmBrand();
holder.txtshow.setAdapter(new CarMessgeAdapter(crimes.get(position)));
}
String firstChar = friends.get(position).pinyin.charAt(0) + " "+pinpai;
if (position > 0) {
String lastChar = friends.get(position - 1).pinyin.charAt(0) + "";
if (firstChar.equalsIgnoreCase(lastChar)) {
holder.tv_first.setVisibility(View.GONE);
} else {
holder.tv_first.setVisibility(View.VISIBLE);
holder.tv_first.setText(firstChar);
}
} else {
holder.tv_first.setVisibility(View.VISIBLE);
holder.tv_first.setText(firstChar);
}
Log.w("滑動事件:", "位置"+position);
return view;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
static class ViewHolder {
private TextView tv_first;
private ListView txtshow;
}
}