2014-10-04 21 views
0

當我向下滾動我的列表視圖它通常與少數元素,但是當它有更多的元素,它崩潰後,我向下滾動..我需要一些一個解釋我哪裏是事先概率,以及如何解決它.. THXAndroid .. ListView崩潰時,我向下滾動隨着隨便餵食它...

這是適配器,其中OurContact.contacts_names是ArrayList的:提前

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), 
android.R.layout.simple_list_item_1, OurContact.contacts_names); 
listView.setAdapter(adapter); 

THX

回答

0

嘗試使用CustomAdapter爲了回收內存以防止崩潰...這是你的更好的方式唱的ListView有效

在res /佈局文件夾

list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:padding="5dp" > 

    <TextView 
     android:id="@+id/category_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/drawer_icon" 
     android:layout_marginLeft="15dp" 
     android:textSize="17sp" 
     android:layout_centerVertical="true" 
     android:textColor="#333333" /> 


</RelativeLayout> 

創建佈局列表項並創建CustomAdapter

MyCustomAdapter.java

import java.util.ArrayList; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 


public class MyCustomAdapter extends ArrayAdapter<String> { 
Context context; 
ArrayList<String> categories=null; 
    public MyCustomAdapter(Context context,ArrayList<String> categories) { 
     super(context, R.layout.list_item,categories); 
     this.categories=categories; 
     this.context=context; 
    } 

    public class ViewHolder 
    { 
     public TextView cat; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.list_item, parent, false); 
      holder=new ViewHolder(); 
      holder.cat=(TextView) convertView.findViewById(R.id.category_name); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.cat.setText(categories.get(position)); 
     return convertView; 
    } 

} 

現在只需使用此適配器來填充ListView

listView.setAdapter(new MyCustomAdapter<String>(this,OurContact.contacts_names)); 
+0

它仍然崩潰即使我使用自定義適配器 – 2014-10-06 18:46:22

+0

粘貼你的logcat錯誤..它將很容易解決 – 2014-10-07 02:54:05

相關問題