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

리스트뷰 선택시 다른 activity를 구동하는 방법 좀 알려주세요 ㅠㅠ

0 추천
안녕하세요!
예전에 리스트뷰를 통해서 각 개체별로 설정되는 url 주소로 가는 방식에
대해서 질문 드렸었는데요. 이번에는 리스트뷰 내부에 있는 다른 class,
즉, 내부 activity를 구동하는 방법에 대해서 질문 드려요!
 
제 지식으로는 도무지 해결이 안되네요...
예전에 링크주소로 연결해서 가도록 한 소스는 아래와 같아요.
첫 번째 링크만 제가 activity(.class)로 바꿔 봤습니다. 당연히 실행 안되요 ㅠㅠ
(list activity에서 다른 activity로 넘어 갈려는 건데...)
 
초보라서 수정해야될 코드부분 전체를 작성해주시면 영광입니다 ㅠ_ㅠ
 
아래 제 블로그에 제가 시도 했던 소스코드가 있습니다.
 
 
그리고 이 주소는 제가 구현하려는 APP의 형태에요
 
ragoman (200 포인트) 님이 2015년 5월 14일 질문

1개의 답변

0 추천
startActivity(new Intent(this,NextActivity.class));

지금하신 방법 그대로 하시면 되는데...

'리스트뷰 내부에 있는 다른 class' 가 무슨 뜻인지 모르겠네요;

그냥 원하는 activity로 intent하면 된다는 말인지..그렇다면 리스트 item내용중 특정 값을 가지고 어느 activity로 이동할지만 정하면 되겠네요.

 

어렵군요 (5,920 포인트) 님이 2015년 5월 14일 답변
네~! 맞아요 ! List view에서 원하는 activity로 이동하고 싶은 겁니다.
(activity 파일은 Java로 되고, Java 파일은 Class 형태로 APK에 추출되어서 Class라고 표현 했네요.... 즉, activity = Class)

url 주소를 통한 링크 말고요~

아래와 같이 기본 코드에서 url 주소 쪽만 바꾸면 될줄 알았습니다.

<원본소스>
Car mercedes=new Car(R.drawable.han, "사회과학","탈북자는 어떻게 해야 보호 받을 수 있는가?", "2,000", "http://m.happycampus.com/doc/12496183");

<변경소스>
Car mercedes=new Car(R.drawable.han, "사회과학","탈북자는 어떻게 해야 보호 받을 수 있는가?", "2,000", "startActivity(new Intent(this, galleryjob0.class));");

하지만 apk 추출 후 실행하면 오류와 함께 종료 됩니다.

그래서 url 주소 쪽을

new Intent(this, galleryjob0.class) , this, galleryjob0.class, galleryjob0.class, com/exsemple/allgallery/galleryjob0 등 으로 해봤지만

역시 결과는 같았고요......

뭔가 간단한거 같은데 굉장히 복잡해서.... ㅠㅠ 제 머리로는 더이상 어찌할 방법이 없더라고요...
Manifest에 새로 띄우실 Activity 등록 하셨나요?
아~!!! 깜밖하고 있었네요...
mainfest에 Activity 등록하긴 했는데...

역시 기존의 정보로는 오류가 뜨네요...
listview.onItemClickListener사용해서
클릭시 해당row의 Car의 일정값을 받아와서 intent하면 되겠네요
무엇으로 구별하실지만 정하시면 되겠네요
row 값은 외부 데이타를 끌어 오는건데... 전면적으로 소스 다시 짜야되는거 아니에요?

일단은 url이란 명칭으로 아답터에서 분류되긴해요... 흠....
저는 프로젝트 내부에 별도로 작성한 java activity를 list view에서 선택시 실행하려고요... url 연결해서 각 홈페이지로 이동하는 것 처럼요...
ArrayList<Car> arrayCars 에 저장해 놓고, listview에 연결해서 쓰시잖아요

Car의 과목종류로 구별한다하였을때
작성자 분의 코드에서

listViewCars = (ListView) findViewById(R.id.list_cars);
  ListCarsAdapter adapter = new ListCarsAdapter(this, arrayCars);
  listViewCars.setAdapter(adapter);
  listViewCars.setOnItemClickListener(this);
 }

 @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         Car item = arrayCars.get(position);
         String type= item.getType();
         if(type.equals("사회과학"))
            startActivity(new Intent(this,사회과학.class));
         else if~~
    }}

startActivity(new Intent(this,사회과학.class));를 문자열로 받아놓고 안된다고 하시는 느낌인데
하지만 apk 추출 후 실행하면 오류와 함께 종료 됩니다.
이 말씀이 실행하자마자 종료된다는건가요? 아니면 ListView의 row를 클릭했을때 죽는다는 말인가요? 괜찮으시면 전체 소스 메일로 받아서 볼 수 잇나요?
whitekdh@nate.com 입니다.
이 메일로 보내 드렸어요 ㅠㅠ 해결해주시면 영광입니다....
제가 굉장히 얕은 지식으로 어렵사리 혼자하는거라 벅차네요...
좋은 결과 있으면 좋겠어욧 ㅠㅠ
멜 보내드렸어요 확인해보세요
님의 친절 덕분에 구현하고 싶었던거 완벽하게 구현 했어요~!! ㅇㅅㅇ/

감사합니다.
...