안드로이드 개발 질문/답변
(글 수 45,052)
listview와 check 를 연결 시킬려고 하고 있습니다.
check된 값을 가져오고 싶은데 도저히 가져올 길이 안보여서 이렇게
질문을 드립니다...
인터넷을 검색해도 잘 모르겠고... 답답해 죽겠습니다.
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
int id = position;
final int checkBoxPosition = position;
if(v == null){
LayoutInflater lif = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = lif.inflate(this.id, null);
}
MemoItem data = item.get(position);
CheckBox checkbox = (CheckBox) v.findViewById(R.id.memoCheck);
TextView t = (TextView)v.findViewById(R.id.memotitle);
TextView t1 = (TextView)v.findViewById(R.id.memosource);
t.setText(data.getMemo());
t1.setText(data.getmemosource());
checkbox.setChecked(((ListView)parent).isItemChecked(position));
checkbox.setFocusable(false);
checkbox.setClickable(false);
return v;
}
여기 까지 어탭터 부분입니다.
이렇게 까지 하여서 체크박스 id 값까지 가져왓는데 여기서 더이상 어떻게 해야 될지 모르겠네여.
여기서부터는 activity를 상속받는 main클래스 입니다.
list = (ListView)findViewById(R.id.memolist);
item = new ArrayList<MemoItem>();
adapter = new MemoItemAdapter(MemoList.this, R.layout.memolistadapter, item);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
고수님들 쫌 도와주세여.. ㅠ
check된 값을 가져오고 싶은데 도저히 가져올 길이 안보여서 이렇게
질문을 드립니다...
인터넷을 검색해도 잘 모르겠고... 답답해 죽겠습니다.
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
int id = position;
final int checkBoxPosition = position;
if(v == null){
LayoutInflater lif = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = lif.inflate(this.id, null);
}
MemoItem data = item.get(position);
CheckBox checkbox = (CheckBox) v.findViewById(R.id.memoCheck);
TextView t = (TextView)v.findViewById(R.id.memotitle);
TextView t1 = (TextView)v.findViewById(R.id.memosource);
t.setText(data.getMemo());
t1.setText(data.getmemosource());
checkbox.setChecked(((ListView)parent).isItemChecked(position));
checkbox.setFocusable(false);
checkbox.setClickable(false);
return v;
}
여기 까지 어탭터 부분입니다.
이렇게 까지 하여서 체크박스 id 값까지 가져왓는데 여기서 더이상 어떻게 해야 될지 모르겠네여.
여기서부터는 activity를 상속받는 main클래스 입니다.
list = (ListView)findViewById(R.id.memolist);
item = new ArrayList<MemoItem>();
adapter = new MemoItemAdapter(MemoList.this, R.layout.memolistadapter, item);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
고수님들 쫌 도와주세여.. ㅠ
대략 리스트뷰에 있는 체크박스의 값을 가저오고싶다. 이건가요?
리스트뷰에 바인딩한 데이터를 어떻게 처리했는지 잘몰라서 모르겠는데 아답터를 이용한 경우라면 어차피 아답터에 연결한 데이터를 갱신하지않으면 리스뷰를스크롤했을때 데이터가 사라지니 갱신해서 연결된 데이터를 직접가저와 처리가 가능합니다.
그냥 리스트뷰에 있는 열에 접근할 경우
((CheckBox)list.getChildAt(인덱스).findViewById(체크박스 아이디)).isChecked()
로 가능할겁니다(무책임)
일반적으로 어딘가에 속해있는 컨트롤(뷰)을 받아오기위해선getChildAt(인덱스)로 받아와야 합니다.
그냥 컨트롤을 불러오려고 findViewById를 하면 null이 넘어오저