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

안드로이드 리스트뷰 아이템 클릭시 지정한 액티비티로 전환

0 추천
@Override
public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
 
String value = parent.getItemAtPosition(position).toString(); 
if(value.equals("가변성")) {
   Intent intent0 = new Intent(MainActivity.this, ItemView.class);
   startActivity(intent0);
}
 
else if(value.equals("가용성")) { 
Intent intent1 = new Intent(MainActivity.this, ItemView02.class);
startActivity(intent1);
}
 
position 값을 지정해서 사용해보았지만
검색하면 검색된 결과에 리스트 아이템(검색된 아이템)이 뜨잖아요 그 때 포지션값이 초기화되어서 포지션을 사용할 수없어서 위에 소스처럼 ID값을 직접 입력해서 구현했습니다. 
근데 아이템 개수가 400~500개정도되는데 이 많은걸 일일이 위에 소스처럼 추가하기에 불편함이 있어서 그런데 반복문을 써서 400~500개 되는 아이템들을 쉽게 구현할 방법이 없을까요???
 
아 그리고 혹시 이클립스 한 프로젝트내의 클래스파일 몇개까지 만들 수 있나요??
익명사용자 님이 2014년 7월 9일 질문

2개의 답변

0 추천
아이템을 다 다른 형식으로 보여주어야 하나봐요?

액티비티를 500개정도 만들어야 한다는 것인데 그건 좀 무리인거같고,

액티비티에 데이터를 넘겨주어 처리하는 방식으로 하나만 구현하면 더 쉽지 않을까 싶습니다.

물론 이 경우 레이아웃이나 행동은 일정하다는 가정하에 해야겠지만요..
인연 (31,880 포인트) 님이 2014년 7월 9일 답변
네 그래서 class파일, xml파일 둘다 400~500개 만들어야하는 상황인데요..
인연님께서 말씀하시는 부분이 xml파일까지 가지 않구 class파일에 데이터 입력해서 바로 화면에 뿌려주는 방법을 말씀 하시는 건가요?
음.... 그걸 400~500개 만든다는건 엄청나게 대형 프로젝트가 아닌이상은 설계가 잘못 되었다고 볼 수 있습니다. 또한 레이아웃이 다 다르다면 사용자는 혼란스럽겠지요. 공통된 데이터를 뽑아서 액티비티를 시작할 때 인텐트를 통해 데이터를 넘겨주고, 시작된 액티비티에서는 데이터를 받아 출력하는 형식으로 말이지요.
0 추천
이건 대상이 activity인지와는 상관없이

리스트뷰 안에 있는 아이템을 클릭했을때 관련있는 객체참조(or 호출)이 가능하는가의 질문으로 보이네요.

onItemClick()에서 position은 초기화 되지 않습니다. 그 부분부터 확인해보세요.

onItemClick()에서 획득한 position으로 배열안에 있는 activity를 호출해서 이동하면 될 거 같네요.
자바원빈 (480 포인트) 님이 2014년 7월 9일 답변
검색뷰를 사용해서 검색을했을때 뜨는 목록이 있는데 거기서 포지션이 초기화되서 지정해놓은 액티비티로 이동이 안됩니다..그 부분은 이미 확인했습니다..
전체 코드보여주시면 확인해드릴게요.
지금 좀 잉여롭네요.;;
그리고 activity 400~500개를 만들어야 하는 상황 자체가 구조적으로 잘 못 구현한 듯 싶습니다.

 Activity 에 있는 UI(view)안에 값만 바꾸시거나, 400~500개 마다 화면이 다르다면 하나의 Activity에 View를 갈아끼우는 형식으로 구현하는게 더 나을거 같네요.
...