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

액티비티 간 데이터 전달 문의 입니다.

0 추천

 

A 액티비티에서   B액티비티를 띄웠습니다.

serverIntent = new Intent(this, DeviceListActivity.class);

startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE);

 

이렇게 띄워놓고....A 액티비티에서 일정작업이 완료되면  B액티비티를 삭제 하고 싶습니다....

(B액티비티는 팝업 형식으로 A액티피티 위에  띄워지게 됩니다.)

어떻게 할 수 있을까요? 안드로이드 ,자바 를 너무 몰라서 간단한거 같은데 계속 헤메고 있습니다. ㅠㅠ

 

브래드서 (240 포인트) 님이 2013년 10월 28일 질문
혹시.. 저코드 그대로 쓰셧나요?
 nullpointexception 안뜨나요?ㅡㅡ;
 private static ArrayList<Activity> am = new ArrayList<Activity>();

2개의 답변

0 추천
작업끝나면.. finish................이말뿐이 해드릴수가없네요 =ㅅ=;
mamongs (4,050 포인트) 님이 2013년 10월 28일 답변
네 답변감사합니다 ~ 그 finish를 A 액티비티에서 B액티비티의 finish함수를 어떻게 호출할 수 있느냐는 것입니다.
음.. 구조가 어떻게 되어 있는지는 잘모르겟지만..
 
C class

private static ArrayList<Activity> am;

public void addactivity(Activity ac){
        am.add(ac);
    }

    public void finishAllActivity(){
        for(Activity activity : am){
            activity.finish();
        }
    }

대충적은거라 일단..
B activity oncreate 일경우..

C.addactivity(this);

로 담아준후 A에서 finishallactivity() 실행하면될것 같은데요..?

구조가 어떻게 되어 있는지 몰라서.. 그냥 주저리 주저리 써봅니다..

이게 아니라면 그냥 B팝업이 사라질때 .. finish하면될텐데요;;
말씀해주신대로 B액티비티의 oncreate에서  addactivity(this);했는데...어플이 중지되어 버립니다 ㅠ 제가 하고있는게...안드로이드 샘플프로젝트 BluetoothChat 이거든요.. 디바이스가 연결이 되었을때...디바이스 목록이 떠있는 팝업(DeviceListActivity)을 지우려고 하는거거든요 ㅠㅠ
혹시.. 저코드 그대로 쓰셧나요?
nullpointexception 안뜨나요?ㅡㅡ;
private static ArrayList<Activity> am = new ArrayList<Activity>();
제가 몰라도 너무 모르는거 같네요 ㅠ 말씀해주신데로 하니 잘되네요...
private static ArrayList<Activity> am 와...
private static ArrayList<Activity> am = new ArrayList<Activity>();
의 차이가 무엇인지요..배열의 초기화를 해주느냐의 차이 인가요?
c언어에서 배열을 선언할때.... int test[5]; 이렇게 하는데요.. 굳이 초기화를 하지 않아도...test[0] =2;  이런식으로 사용할 수 있는데;;; 자바는 이게 아닌가요?;;;ㅠㅠ
몰라도 너무 모릅니다 ㅠㅠ
private static ArrayList<Activity> am; 빈껍데기..
private static ArrayList<Activity> am = new ArrayList<Activity>();
Arraylist라는 클래스를 사용하겟다는 일종의 선언문이죠..
그렇군요...기초가 너무 없다보니 ㅠ 암튼 넘 감사합니다
0 추천
B 실행 할때 리시버 하나 등록하시고

A 작업 완료되면 B에서 등록한 리시버로 브로드케스트 날려서 B에서 finish 호출 하시면 될거 같네요.
whitesnow (8,920 포인트) 님이 2013년 10월 28일 답변
리시버 등록, 브로드케스트 이둘을 조사해 봐야겠군요...자바를 너무 몰라서...님의 답변이 이해가 안가네요^^;;; 암튼 답변 감사합니다
...