programing2012. 8. 14. 17:36

TestListActivity.java

TestListAdapter mCustomAdapter;

mCustomAdapter = new TestListAdapter(TestNews.this, lDataList, R.layout.test_datalist, from, to);
mLv_TestList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mLv_TestList.setAdapter(mCustomAdapter);

TestListAdapter.java

public class TestListAdapter extends SimpleAdapter {

	private List<Map<String, String>> mArrayList;
	private int mResource; // Layout ID
	private Context mContext;
	ViewHolder holder;
	ArrayList<Boolean> array;

	public TestListAdapter(Context context, List<Map<String, String>> lDataListFix, int resource, String[] from, int[] to) {
		super(context, lDataListFix, resource, from, to);
		mArrayList = lDataListFix;
		mResource = resource;
		mContext = context;

	}

	@Override
	public int getCount() {
		return mArrayList.size();
	}

	@Override
	public Object getItem(int position) {
		return mArrayList.get(position).get("msg") + "<" + mArrayList.get(position).get("date") + ">";
	}

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

	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		if (convertView == null) {
			LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			convertView = vi.inflate(mResource, null);

			holder = new ViewHolder();
			holder.msg = (TextView) convertView.findViewById(R.id.msg);
			holder.date = (TextView) convertView.findViewById(R.id.date);
			holder.cb_checkbox = (CheckBox) convertView.findViewById(R.id.cb_checkbox);
			convertView.setTag(holder);
		} else
			holder = (ViewHolder) convertView.getTag();

		Map<String, String> iItem = mArrayList.get(position);

		holder.tv_Msg.setText(iItem.get("msg"));
		holder.tv_CreateDate.setText(iItem.get("date"));
		holder.cb_checkbox.setChecked(false);

		holder.cb_checkbox.setChecked(((ListView)parent).isItemChecked(position));
		return convertView;
	}

}

class ViewHolder {
	TextView msg;
	TextView date;
	CheckBox cb_checkbox;
}


여기까지 별반 다르지 않았다. 체크박스 까지는 무난하게 만들지만 리스트가 늘어나면 문제가 생겼다.
체크하지 않았는데도 체크가되거나 스크롤 내리면 체크한 리스트에서 체크가 해제되어 보여졌다.
실제로는 체크가되어있었다.
인터넷에 많이 찾아봤지만 명쾌한 답이잘 없다. 결국 해결한건
holder.cb_checkbox.setChecked(((ListView)parent).isItemChecked(position));
한줄이다.

 TestListActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/msg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:textColor="@color/black"
            android:textSize="17dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:textColor="@color/text3" />
    </LinearLayout>

    <CheckBox
        android:id="@+id/cb_checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp" 
        android:focusable="false"
        android:clickable="false"/>

</LinearLayout>
Posted by 부르마
programing2012. 8. 11. 20:50

 

InstallHeader.exe

C언어 공부할때 유용한헤더파일이죠!

Torboc.h파일 인스톨러입니다. 비쥬얼스튜디오가 설치된상태에서  인스톨러 실행시에 컴파일러의 Include디렉토리에
복사됩니다.

아래는 인스톨러 실행시 나타나는 팝업창입니다.

유용하게 사용하세요~

Posted by 부르마
Snowboard2012. 8. 11. 19:46

'Snowboard' 카테고리의 다른 글

[스노보드]BATTLE OF THE BRANDS  (0) 2012.08.11
스노보드 탈때 장비 선택 구입요령.  (0) 2012.08.09
Posted by 부르마