2010-12-09 4 views

답변

0

다른 활동과 디스플레이에이 선택한 연락처를 전달해야합니다.

예, 활동이 이미 실행에 데이터를 전달하기 위해 다음으로

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    // Sets the View of the Activity 
    setContentView(R.layout.activity_layout); 
    registerReceiver(new CustomReceiver(this), new IntentFilter("SEND_DATA")); 
} 

:

public void sendToActivity(Object data){ 
    Intent i = new Intent("SEND_DATA"); 
    i.putExtra("data", this.catchReports.get(data)); 
    sendBroadcast(i); 
} 

를 그런 다음 설치에 방영 신호를 잡으려고 수신 활동에 청취자가 맞춤 수신자 다음 :

public class CustomReceiver extends BroadcastReceiver { 

    private MyActivity activity; 

    public ReceiverEvent(MyActivity activity) { 
     this.activity = activity; 
    } 

    public void onReceive(Context context, Intent i) { 
     this.activity.doWhateverWithYourData(i.getParcelableExtra("newEvent")); 
    } 
} 

개체를 전송하려는 경우 정수, 수레 및 문자열보다 작 ​​으면 Parcelable을 만들어야합니다. 당신은 몇 가지 솔루션을

+0

워를 읽으십시오 활동에 데이터를 보내려면 어떻게해야합니까? 인 텐트에 정보를 보내고 의도 한 활동을 시작하게하는 것이 어떨까요? –

+0

이것은 이미 실행중인 액티비티에 데이터를 전달하기위한 것이지 새로운 액티비티를 시작하는 것이 아닙니다.이 경우 인 텐트와 함께 startActivity를 수행하고 Bundle.getIntent()를 사용하여 onCreate()), 귀하의 게시물의 첫 번째 링크에 설명되어 있습니다. – nbarraille

1

...

  1. 당신은
  2. 당신은 Intent.putExtra를 통해

옵션 인 텐트에 데이터를 포장 할 수 자바 클래스의 정적 필드를 사용할 수 있습니다 (1) 자신의 활동간에 데이터를 보내려는 경우 가장 쉽고 빠를 것입니다. 옵션 (2)는 다른 애플리케이션의 활동으로 데이터를 보내려는 경우 수행해야하는 작업입니다.

나는 당신이, 당신은 왜 브로드 캐스트를 사용하는 이들 Q & 더 깊이 일부 커버로이 질문에 비록 처음 ...

Passing data of a non-primitive type between activities in android

Passing data between activities in Android

Switching activities/passing data between activities

관련 문제