마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

getChildAt(i)가 null로 값을 못받아옵니다;

0 추천

ListView listView;

public static ArrayAdapter<String> adapter;

 

//onCreate

listText = (TextView) findViewById(R.id.myText); //리스트 한 열마다 들어갈 text xml

listView = (ListView)findViewById(R.id.myList);// 리스트뷰

final ArrayList<String> arrList = new ArrayList<String>();
// 현재 클래스 위치,TextView의 xml,TextView의 id, 배열
adapter = new ArrayAdapter<String>(this, R.layout.listview_custom, R.id.myText, arrList);
listView.setAdapter(adapter);
 
//onCreate 끝
 
이 뒤로 삭제 버튼하나를 누르면 체크한 녀석들을 받아와서 삭제하는 역할을 합니다.
 
for (int i = arrList.size() - 1; i >= 0; i--) 
{
try
{
// Log.e("sdfsdf",listView.getChildAt(i).getId()+"");
test = (RelativeLayout)listView
.getChildAt(i);
// Log.e("log stu", "" + test.getChildCount());
 
// check = (CheckBox) test.getChildAt(1);
check = (CheckBox) test.findViewById(R.id.checkbox);
}
catch(Exception e)
{
e.printStackTrace();
 
}
Log.e("체크확인", "test : "
+ check.isChecked());
 
이런식으로 삭제를 하는건데, getChildAt(i)가 null값입니다.
지금 세개의 기종으로 테스트를 하는데, 나머지 두개는 이런식으로 체크한 항목들을 리스트에서 잘 삭제합니다.
근데 나머지 한 기종에서는 삭제하려고 하면 강제종료가 되버리네요..
기종에 따라서 listview의 getChildAt 값을 못받아오는 경우가 있는지요?

체크박스 값을 못받아오는가 싶어서 보니까 다른 레이아웃에도 checkbox라는 이름의 체크박스가 있어서

제가 지금 원하는 체크박스 의 이름을 checkbox_new로 수정했습니다. [두개가 이름이 같아서  저 역시 혼란이;;]

완벽하게 구조를 이해한 상태가 아니라 고치기도 쉽지 않습니다..ㅠㅠ

 

anci (19,950 포인트) 님이 2014년 6월 5일 질문
anci님이 2014년 6월 5일 수정

1개의 답변

+1 추천
 
채택된 답변
YeonMin (17,860 포인트) 님이 2014년 6월 5일 답변
anci님이 2014년 6월 5일 채택됨
댓글을 이제 확인했습니다..
이미 해결했네요 ㅎㅎ; 레이아웃쪽이 문제였었습니다..
이전 백업파일로 덮어씌우니 작동하네요..답변 감사합니다.^^
...