안드로이드 개발 질문/답변
(글 수 45,052)
listview 에 String 형태로 메뉴를 나열하려고 합니다.
리스트이름.setOnItemClickListener 로 원하는 메뉴를 클릭했을시 그에 따라 각기 다른 Activity 화면으로 이동하려고 합니다.
onItemClick 함수에서 메뉴의 position 을 가지고 설정하면 되는걸로 알고 있는데요
문제는 제가 만들려는 list의 메뉴들은 고정된 순서로 나오는게 아니라 상황에 따라 우선순위를 주어서
매번 배열되는 순서가 다릅니다.
그렇다면 position 으로 고정시켜서 Activity 를 연결할수가 없는데
어떻게 연결시킬수 있는 방법이 없을까요??
리스트이름.setOnItemClickListener 로 원하는 메뉴를 클릭했을시 그에 따라 각기 다른 Activity 화면으로 이동하려고 합니다.
onItemClick 함수에서 메뉴의 position 을 가지고 설정하면 되는걸로 알고 있는데요
문제는 제가 만들려는 list의 메뉴들은 고정된 순서로 나오는게 아니라 상황에 따라 우선순위를 주어서
매번 배열되는 순서가 다릅니다.
그렇다면 position 으로 고정시켜서 Activity 를 연결할수가 없는데
어떻게 연결시킬수 있는 방법이 없을까요??
2010.07.27 15:50:12
음 ArrayList를 만드실 때 String형으로 만들지 마시고,
Menu 라는 Class 형태로 만들면 어떨까 합니다~
Class Menu{
Int ID;
String MenuName;
// getters and setters
}
ArrayList<Menu> MenuList = new ArrayList<Menu>();
리스트에 뿌려줄때는 MenuList.get(position).getMenuName()을 사용하면 되고
Activity 이동하는 건, MenuList.get(position).getID()해서 ID값에 따라 분기 처리를 하면 되지 않을까 합니다~
저는 별도의 ArrayList를 만들어서 거기다가 정보를 넣고, 리스트뷰 내용이 바뀌면 ArrayList내용도 동기화해서 움직이는 방식을 썼었습니다.
이게 정석인지는 모르겠지만...