, 즉시 마음에 와서 두 가지 옵션은 다음과 같습니다
- 가 탭 활동 (예 : Rate.java)에서 방송을 전송하고 이미지 뷰를 호스팅하는 활동을 그것을 들어라.
- update 메소드로 사용자 정의 리스너 인터페이스를 사용하는 일종의 BaseActivity (확장
Activity
)를 만듭니다. 탭 액티비티를 BaseActivity로 확장하고 ImageView에서의 액티비티로 BaseActivity를 구현하십시오. 그런 다음 탭 액티비티에서 리스너에 대한 update 메소드를 호출하고 (BaseActivity로 인스턴스화하고 리스너를 따라 전달) 이미지 뷰를 사용하여 액티비티를 적용 할 수 있습니다. 요청에 따라
// 편집 : 방송과 수신기에 대한 정보
좋은 출발점은 BroadcastReceiver
에 대한 설명서입니다. 귀하의 경우에는 코드로 작성하는 것이 가장 쉽습니다.
BroadcastSendingActivity :
public class BroadcastSendingActivity extends Activity {
public static final String UPDATE_IMAGEVIEW = "UPDATE_IMAGEVIEW";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sender);
Intent i = new Intent();
i.setAction(UPDATE_IMAGEVIEW);
sendBroadcast(i);
}
}
BroadcastReceivingActivity :
public class BroadcastReceivingActivity extends Activity {
private BroadcastReceiver mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiver);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver();
}
private void registerReceiver() {
if (mReceiver == null) {
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BroadcastSendingActivity.UPDATE_IMAGEVIEW)) {
// code to update imageview...
}
}
};
}
getApplicationContext().registerReceiver(mReceiver, new IntentFilter(BroadcastSendingActivity.UPDATE_IMAGEVIEW));
}
private void unregisterReceiver() {
if (mReceiver != null) {
getApplicationContext().unregisterReceiver(mReceiver);
}
}
,691
최소한의 예는 다음과 같은 것을 포함 할 것이다
}
코드를 테스트하지 않았지만 실수를 파악할 수있을 것입니다. :)
나는 내 대답으로 첫 번째 옵션을 수락합니다. 조금 더 자세히 설명해 주시겠습니까? 아마 당신이 일하는 것을 구현하기 쉬운 뭔가에 대한 링크가 있을까요? 나는 내 부분에 대한 연구를 할 것이다. 시간 내 주셔서 감사합니다. –
아이디어를 설명하기 위해 일부 코드 스 니펫을 추가했습니다. 'BroadcastSendingActivity'는 생성시 방송을 보내고, 이것은 BroadcastReceivingActivity에 의해 수신됩니다 (물론 방송이 보내지기 전에 수신기로 등록되어 있어야합니다). 귀하의 경우 탭 활동은 발신자가 될 것이며 이미지 활동을 호스팅하는 활동은 수신자를 볼 것입니다. –
확인하려면, Rate.java에 BroadcastSendingActivity 서브 클래스를 추가하고 tabhost가있는 활동에 BroadcastReceivingActivity를 추가해야합니까? –