리스트뷰에 동적으로 아이템이 추가됩니다.
칸이 네개로 나누어져 있습니다.. 밑에처럼
첫번째칸/두번째칸/세번째칸/네번째칸
현재 리스트가 총 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()이라면...
만약 리스트에서 보여지는 두번째 View의 TextView의 String내용을 원하는 것이라면...
그때 TextView의 ID는 R.id.textview라면...
두번째 방법이 필요 할 수는 있지만, 데이터는 첫번째 방법으로 얻을 수 있습니다.