반응형
	/* 커스텀 리스트 뷰 생성 부분 */
	public void setCustomList() {
		// 리스트에 들어갈 값을 서버에서 얻음
		ServerConnector servConn = new ServerConnector("General");
		servConn.selectData();
		sListData = new String[servConn.getSelectDataLength()][10];
		sListData = servConn.getSelectData();
		
		// 리스트를 한 행씩 생성
		ArrayList<CustomListViewItem> arItem = new ArrayList<CustomListViewItem>();

		for(int i=0; i<servConn.getSelectDataLength(); i++) {
			arItem.add(new CustomListViewItem(
				i+1, 
				sListData[i][1],
				sListData[i][8],
				sListData[i][9]
			));
		}
		
		// 리스트를 액티비티에 띄우는 부분
		CustomListViewHandler MyAdapter = new CustomListViewHandler(GeneralAchaListActivity.this, arItem, false);
		lvAchaList = (ListView) findViewById(R.id.acha_list_list);
		lvAchaList.setAdapter(MyAdapter); 
		lvAchaList.setOnItemClickListener(mItemClickedListener);
		lvAchaList.setOnItemLongClickListener(mLongClickListener);
	}


/* 커스텀 리스트뷰와 액티비티를 연결할 클래스 */
public class CustomListViewItem {
	public CustomListViewItem(int index, String date, String contents,
			String state) {
		this.mIndex = index;
		this.mDate = date;
		this.mContents = contents;
		this.mState = state;
	}
	
	public CustomListViewItem(int index, String date, String department,
			String reporter, String state) {
		this.mIndex = index;
		this.mDate = date;
		this.mDepartment = department;
		this.mReporter = reporter;
		this.mState = state;
	}
	
	int mIndex;
	String mDate, mReporter, mContents, mDepartment, mState;
}


/**
 * 커스텀 리스트뷰를 액티비티에 생성하는 클래스 - 사원과 생산지원
 */
public class CustomListViewHandler extends BaseAdapter {
	LayoutInflater mInflater;
	ArrayList arSrc;
	boolean isManager;

	public CustomListViewHandler(Context context, ArrayList arItem, boolean isManager) {
		mInflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		arSrc = arItem;
		
		this.isManager = isManager;
	}

	public int getCount() {
		return arSrc.size();
	}

	public CustomListViewItem getItem(int position) {
		return arSrc.get(position);
	}

	public long getItemId(int position) {
		return position;
	}

	// 커스텀 된 뷰를 불러와 실제로 화면에 뿌려줄 메소드
	public View getView(int position, View convertView, ViewGroup parent) {
		int res;
		// 커스텀 리스트 뷰를 정의한 xml 파일 주소를 받아온다.
		if(this.isManager) {
			res = R.layout.acha_manager_list_contents;
		
			// 주소를 받아온 뒤에 convertView로 전체 구성을 뿌려준다.
			convertView = mInflater.inflate(res, parent, false);

			// 인덱스 설정
			TextView tvIndex = (TextView) convertView.findViewById(R.id.acha_manager_list_contents_index);
			tvIndex.setText(""+arSrc.get(position).mIndex);

			// 날짜 설정
			TextView tvDate = (TextView) convertView.findViewById(R.id.acha_manager_list_contents_date);
			tvDate.setText(arSrc.get(position).mDate);
			
			// 부서 설정
			TextView tvDepartment = (TextView) convertView.findViewById(R.id.acha_manager_list_contents_department);
			tvDepartment.setText(arSrc.get(position).mContents);
			
			// 부서 설정
			TextView tvReporter = (TextView) convertView.findViewById(R.id.acha_manager_list_contents_reporter);
			tvReporter.setText(arSrc.get(position).mContents);
			
			// 상황 설정
			TextView tvState = (TextView) convertView.findViewById(R.id.acha_manager_list_contents_state);
			tvState.setText(arSrc.get(position).mState);
		}
		else {
			res = R.layout.acha_list_contents;

			// 주소를 받아온 뒤에 convertView로 전체 구성을 뿌려준다.
			convertView = mInflater.inflate(res, parent, false);

			// 인덱스 설정
			TextView tvIndex = (TextView) convertView.findViewById(R.id.acha_list_contents_index);
			tvIndex.setText(""+arSrc.get(position).mIndex);

			// 날짜 설정
			TextView tvDate = (TextView) convertView.findViewById(R.id.acha_list_contents_date);
			tvDate.setText(arSrc.get(position).mDate);
			
			// 내용 설정
			TextView tvContents = (TextView) convertView.findViewById(R.id.acha_list_contents_contents);
			tvContents.setText(arSrc.get(position).mContents);
			
			// 상황 설정
			TextView tvState = (TextView) convertView.findViewById(R.id.acha_list_contents_state);
			tvState.setText(arSrc.get(position).mState);
		}
		return convertView;
	}
}
반응형

'Android' 카테고리의 다른 글

뒤로가기 버튼  (0) 2013.01.30
스피너 핸들러 Spinner Handler  (0) 2013.01.30
자주 쓰는 메소드 : goOtherActivity, setActivity, setListener, warmToast  (0) 2013.01.30
토스트 Toast  (0) 2013.01.30
옵션 메뉴  (0) 2013.01.30

WRITTEN BY
데르벨준

,