Android 自定义适配器无错误地失败

Android 自定义适配器无错误地失败,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,问题是: arraylist中有49个项目,适配器在项目3处停止,没有任何错误通知。应用程序不会崩溃,也不会显示文本视图。下面是适配器: public class ExhibitorObjectAdapter extends ArrayAdapter<ExhibitorObject> { public ArrayList<ExhibitorObject> exhibitors; public Activity act; public TextView tvExhibit

问题是: arraylist中有49个项目,适配器在项目3处停止,没有任何错误通知。应用程序不会崩溃,也不会显示文本视图。下面是适配器:

public class ExhibitorObjectAdapter extends ArrayAdapter<ExhibitorObject> {

public ArrayList<ExhibitorObject> exhibitors;
public Activity act;
public TextView tvExhibitorName;
public ImageView ivExhibitorLogo;

public ExhibitorObjectAdapter(Activity a, int layoutResourceId, ArrayList<ExhibitorObject> ex) {
    super(a, layoutResourceId,ex);
    this.exhibitors = ex;
    this.act = a;

}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return exhibitors.size();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {
        LayoutInflater inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = inflater.inflate(R.layout.single_exhibitor, null);        
    }

    ExhibitorObject ex = exhibitors.get(position);

    if (ex != null) {

         //System.out.println(ex.companyName);
        tvExhibitorName = (TextView) v.findViewById(R.id.textViewListExhibitorName);

        tvExhibitorName.setText( ex.companyName );

    }

    return v;
}
公共类参展商对象适配器扩展ArrayAdapter{
公共阵列列表参展商;
公共活动法;
公共文本视图TVEXBITORNAME;
公共图像查看ivExhibitorLogo;
公共参展商对象适配器(活动a、内部布局资源ID、ArrayList ex){
超级(a、layoutResourceId、ex);
此参数=ex;
this.act=a;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回参展商。尺寸();
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null){
LayoutInflater充气器=(LayoutInflater)act.getSystemService(Context.LAYOUT\u充气器\u服务);
v=充气机。充气(R.布局。单个参展商,空);
}
参展商对象ex=参展商获取(位置);
如果(ex!=null){
//System.out.println(例如公司名称);
TveExhibitorName=(TextView)v.findViewById(R.id.TextViewListXhibitorName);
tvehibitorname.setText(前公司名称);
}
返回v;
}
}

编辑:以下是包含listview的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >


<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="18sp" 
    android:background="#134882"
    android:paddingBottom="15sp"
    android:paddingTop="5sp" 
    android:paddingLeft="5sp" 
    android:textColor="#FFFFFF" 
    android:text="Exhibitors" />


<ListView android:id="@+id/listViewExhibitors"
          android:layout_height="match_parent"
          android:layout_width="match_parent"/>


</LinearLayout>


我有几个其他的适配器,完全一样,这一个,他们工作得很好。我已经在这上面浪费了一整天(这可能是一个愚蠢的问题),任何帮助都将不胜感激。谢谢。

在您的适配器范围内保存TVEXIBITORNAME是不好的。将其设置为getView()中的本地文件,否则会导致各种泄漏。那口井可能是你问题的根源


另外,非常奇怪的是,您没有在父视图下膨胀新视图。可能正在使用充气(布局,父级,false)将有所帮助。

请编辑您的问题并包含包含列表视图的XML布局。已添加布局。谢谢。在Constructor中初始化您的arraylist是否确实
exhibitors.size()
不是3?是。.size()在控制台中返回49。为什么?他总是在使用它之前覆盖它。当然,它可能是一个漏洞,但它怎么会导致它只返回3个元素呢?