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로 수정했습니다. [두개가 이름이 같아서 저 역시 혼란이;;]
완벽하게 구조를 이해한 상태가 아니라 고치기도 쉽지 않습니다..ㅠㅠ