package sg.vinova.vss.group5.non.activity;
import java.util.ArrayList;
import sg.vinova.vss.group5.non.R;
import android.app.Activity;
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 MyArrayAdapter extends ArrayAdapter<SlidingMenuItem>
{
Activity context=null;
ArrayList<SlidingMenuItem>myArray=null;
int layoutId;
/**
* Constructor nay dung de khoi tao cac gia tru tu
* MainActivity truyền vào
* @param context : là Activity từ Main
* @param layoutId: Là layout custom do ta tạo (my_item_layout.xml)
* @param arr : Danh sách nhân viên truyền từ Main
*/
public MyArrayAdapter(Activity context,
int layoutId,
ArrayList<SlidingMenuItem>arr){
super(context, layoutId, arr);
this.context=context;
this.layoutId=layoutId;
this.myArray=arr;
}
/**
* hàm dùng để custom layout, ta phải override lại hàm này
* từ MainActivity truyền vào
* @param position : là vị trí của phần tử trong danh sách nhân viên
* @param convertView: convertView, dùng nó để xử lý Item
* @param parent : Danh sách nhân viên truyền từ Main
* @return View: trả về chính convertView
*/
public View getView(int position, View convertView, ViewGroup parent) {
/**
* bạn chú ý là ở đây Tôi không làm:
* if(convertView==null)
* {
* LayoutInflater inflater=
* context.getLayoutInflater();
* convertView=inflater.inflate(layoutId, null);
* }
* Lý do là ta phải xử lý xóa phần tử Checked, nếu dùng If thì
* nó lại checked cho các phần tử khác sau khi xóa vì convertView
* lưu lại trạng thái trước đó
*/
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(layoutId, null);
// chỉ là test thôi, bạn có thể bỏ If đi
//dòng lệnh lấy TextView ra để hiển thị Mã và tên lên
final TextView txtdisplay = (TextView) convertView.findViewById(R.id.txtItem);
// lấy ra nhân viên thứ position
final SlidingMenuItem emp = myArray.get(position);
//đưa thông tin lên TextView
//emp.toString() sẽ trả về Id và Name
txtdisplay.setText(emp.toString());
// lấy ImageView ra để thiết lập hình ảnh cho đúng
final ImageView imgitem = (ImageView) convertView.findViewById(R.id.iconItem);
//nếu là Nữ thì lấy hình con gái
int img = emp.getImg();
// imgitem.setImageResource(R.drawable.logo);
imgitem.setImageResource(img);
//Vì View là Object là dạng tham chiếu đối tượng, nên
//mọi sự thay đổi của các object bên trong convertView
//thì nó cũng biết sự thay đổi đó
return convertView;//trả về View này, tức là trả luôn
//về các thông số mới mà ta vừa thay đổi
}
}