리스트뷰에 동적으로 아이템이 추가됩니다.
칸이 네개로 나누어져 있습니다.. 밑에처럼
첫번째칸/두번째칸/세번째칸/네번째칸
현재 리스트가 총 5개가 동적으로 추가되었을경우
2번째 리스트에서 첫번째칸 텍스트 뷰의 텍스트를 가져오려고 합니다..
View view = list.getItemPositionAt(2); 두번째 리스트에 뷰를 가져온다..
여기서 첫번째 텍스트뷰를 접근하려면 어떻게 해야 하나요?
음.. getItemAtPosition()으로 해당 인덱스의 아이템은 가져 올 수 있습니다.
그리고 그 아이템에서 TextView에 설정한 String을 가져오세요.
View를 가져오는 거와 아이템을 가져오는 것은 큰 차이가 있습니다.
아이템이 모두 화면에 보인다면 큰 차이가 없지만, 하나라도 화면에 나오지 않으면 원하는 동작을 하지 않을 수 있습니다.
전체 아이템에서 두번째 아이템을 얻고 싶은거라면 데이터 리스트 중 두번째 아이템을 가져와서 TextView에 설정한 데이터를 가져와야 합니다.
만약 아이템이 MyItem 클래스이고, TextView에 설정한 String을 가져오는 메소드가 getName()이라면...
MyItem item = list.getItemAtPosition(1); if (item != null) { String name = item.getName(); }
만약 리스트에서 보여지는 두번째 View의 TextView의 String내용을 원하는 것이라면...
그때 TextView의 ID는 R.id.textview라면...
View view = list.getChildAt(1); if (view != null) { TextView textview = (TextView) view.findViewById(R.id.textview); if (textview != null) { String name = textview.getText().toString(); } }
두번째 방법이 필요 할 수는 있지만, 데이터는 첫번째 방법으로 얻을 수 있습니다.
로그인 유지
음.. getItemAtPosition()으로 해당 인덱스의 아이템은 가져 올 수 있습니다.
그리고 그 아이템에서 TextView에 설정한 String을 가져오세요.
View를 가져오는 거와 아이템을 가져오는 것은 큰 차이가 있습니다.
아이템이 모두 화면에 보인다면 큰 차이가 없지만, 하나라도 화면에 나오지 않으면 원하는 동작을 하지 않을 수 있습니다.
전체 아이템에서 두번째 아이템을 얻고 싶은거라면 데이터 리스트 중 두번째 아이템을 가져와서 TextView에 설정한 데이터를 가져와야 합니다.
만약 아이템이 MyItem 클래스이고, TextView에 설정한 String을 가져오는 메소드가 getName()이라면...
MyItem item = list.getItemAtPosition(1); if (item != null) { String name = item.getName(); }만약 리스트에서 보여지는 두번째 View의 TextView의 String내용을 원하는 것이라면...
그때 TextView의 ID는 R.id.textview라면...
View view = list.getChildAt(1); if (view != null) { TextView textview = (TextView) view.findViewById(R.id.textview); if (textview != null) { String name = textview.getText().toString(); } }두번째 방법이 필요 할 수는 있지만, 데이터는 첫번째 방법으로 얻을 수 있습니다.