1
製作了一個自定義列表視圖,其中包含一個圖像,兩個文本視圖和一個複選框。我可以確定複選框被選中/取消選中,但是這個設計的問題是非常慢的滾動。如果我測試它到真實設備中,這會變得更快嗎?Android自定義列表加載非常緩慢
public class ListViewActivity extends ListActivity {
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
ArrayAdapter<Model> compositeAdapter = new CompositeAdapter(this,
getModel());
setListAdapter(compositeAdapter);
ListView lv = getListView();
lv.setFastScrollEnabled(true);
}
}
private class CompositeAdapter extends ArrayAdapter<Model> {
private final List<Model> list;
private final Activity context;
public CompositeAdapter(Activity context, List<Model> list) {
super(context, R.layout.listviewactivitylayout, list);
this.context = context;
this.list = list;
}
private class ViewHolder{
protected TextView textView1;
protected TextView textView2;
protected ImageView imageView;
protected CheckBox ckBox;
}
public View getView (int position, View convertView, ViewGroup parent) {
View view = null;
final ViewHolder vh;
if(convertView==null){
LayoutInflater li = context.getLayoutInflater();
view = li.inflate(R.layout.listviewactivitylayout, null);
vh = new ViewHolder();
vh.ckBox =(CheckBox) view.findViewById(R.id.list_view_layout_checkbox);
vh.imageView = (ImageView) view.findViewById(R.id.listView_image_view);
vh.textView1 = (TextView)view.findViewById(R.id.list_view_layout_text_view1);
vh.textView2= (TextView)view.findViewById(R.id.list_view_text_view2);
view.setTag(vh);
}
else{
view= convertView;
vh = (ViewHolder)view.getTag();
}
/**
** sending text and images to the each of the list view
**
*/
你在模擬器或手機上測試這個嗎?仿真器往往會因我的經驗而變得非常慢,所以如果您使用仿真器,那麼您的代碼可能沒有任何問題。 – redbmk
發佈您的代碼。沒有它,很難說出了什麼問題。 –
@redEvo - > true。仿真器的速度是痛苦的...^H^H^H脖子 –