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脖子 –