반응형
/* 커스텀 리스트 뷰 생성 부분 */ 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; ArrayListarSrc; 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
,