Như buổi 2 mình đã viết hiển thị ContactList để cho các bạn hiểu nhưng chưa được tối ưu ! đoạn code sau đây sẽ tối ưu vần ConvertView cho các bạn !
Giúp cho các bạn hiển thị tốt trên màn hình điện thoại không tốn bộ nhớ ram chạy mượt hơn !
Đoạn code buổi 2 để cho các bạn tiện so sánh !
Giúp cho các bạn hiển thị tốt trên màn hình điện thoại không tốn bộ nhớ ram chạy mượt hơn !
Đoạn code buổi 2 để cho các bạn tiện so sánh !
- @Override
public View getView(final int hailamit, View convertview, ViewGroup arg2) {
// ở Hàm getView đã support convertview rồi nhưng mình chưa sử dụng
LayoutInflater inflater = getLayoutInflater();
//Bơm layout vao cai View mình tao ở dưới
View contactitemview = inflater.inflate(R.layout.contact_list_item, null);
TextView textname = (TextView) contactitemview.findViewById(R.id.txtName);
textname.setText(dataName[hailamit]);
TextView textnumber = (TextView) contactitemview.findViewById(R.id.txtNumber);
textnumber.setText(dataNumber[hailamit]);
ImageView textphoto = (ImageView) contactitemview.findViewById(R.id.imvContact);
textphoto.setImageResource(dataPhoto[hailamit]);
textname.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ContactList.this, ContactDetailActivity.class);
Bundle extras = new Bundle();
extras.putString(CommonKeys.CONCTACT_NAME, dataName[hailamit]);
extras.putString(CommonKeys.CONCTACT_NUMBER, dataNumber[hailamit]);
extras.putLong(CommonKeys.CONCTACT_PHOTO, dataPhoto[hailamit]);
intent.putExtras(extras);
startActivity(intent);
}
});
return contactitemview;
}
}
- @Override
public View getView(final int hailamit, View convertview, ViewGroup arg2) {
LayoutInflater inflater = getLayoutInflater();
ViewHolder holder;
if(convertview == null){
Log.d("Demo", hailamit + "");
convertview = inflater.inflate(R.layout.contact_list_item, null);
holder = new ViewHolder();
holder.imvContact= (ImageView) convertview.findViewById(R.id.imvContact);
holder.txtName = (TextView) convertview.findViewById(R.id.txtName);
holder.txtNumber = (TextView) convertview.findViewById(R.id.txtNumber);
convertview.setTag(holder);
}else {
holder = (ViewHolder) convertview.getTag();
}
//Bơm layout vao cai View mình tao ở dưới
holder.txtName.setText(dataName[hailamit]);
holder.txtNumber.setText(dataNumber[hailamit]);
holder.imvContact.setImageResource(dataPhoto[hailamit]);
convertview .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ContactList.this, ContactDetailActivity.class);
Bundle extras = new Bundle();
extras.putString(CommonKeys.CONCTACT_NAME, dataName[hailamit]);
extras.putString(CommonKeys.CONCTACT_NUMBER, dataNumber[hailamit]);
extras.putLong(CommonKeys.CONCTACT_PHOTO, dataPhoto[hailamit]);
intent.putExtras(extras);
startActivity(intent);
}
});
return convertview ;
}
} - // Tạo thêm một class ViewHolder
private static class ViewHolder{
public ImageView imvContact;
public TextView txtName;
public TextView txtNumber;
}
0 Nhận xét