2016-05-09 11 views

答えて

0

あなたの活動では、onActivityResult()を上書きします。

を参照してください:あなたは、通知の他の手段を使用する場合は、送信者と受信者の両方が独自のコードであれば、LocalBroadcastManagerBroadcastReceiverを、試してみるhttp://developer.android.com/training/basics/intents/result.html

外部コードやアプリに依存している場合は、アクティビティの方法を使用し、それを構築する必要があります。

1

オプションとして、observerパターンがあります。もちろん

public interface ActivityObserver { 
    void onActivityResult(int requestCode, int resultCode, Intent data); 
} 

public class MyActivity extends Activity { 
    private List<ActivityObserver> observers = new ArrayList<ActivityObserver>(); 

    public void attach(ActivityObserver observer){ 
     observers.add(observer); 
    } 

    public void detach(ActivityObserver observer){ 
     observers.remove(observer); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     for (ActivityObserver observer : observers) { 
      observer.onActivityResult(requestCode, resultCode, data); 
     } 
    } 
} 

ここにあなたのアダプタでActivityObserverを実装し、それを添付する必要があります。

しかし、Androjetaフレームワーク(私が管理)を使用することを検討してください。

public class OnActivityResultEvent { 
    int requestCode; 
    int resultCode; 
    Intent data; 

    public OnActivityResultEvent(int requestCode, int resultCode, Intent data) { 
     this.requestCode = requestCode; 
     this.resultCode = resultCode; 
     this.data = data; 
    } 
} 

public class MyActivity extends Activity { 
    @Subject 
    Observers<OnActivityResultEvent> observers; 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     observers.notify(new OnActivityResultEvent(requestCode, resultCode, data)); 
    } 
} 

public class MyAdapter extends ArrayAdapter{ 
    @Observe(MyActivity.class) 
    void onActivityResultEvent(OnActivityResultEvent event) { 
    } 
} 

してください、詳細についてはリンクをたどって:それはあなたがあなたのケースで使用することができますObserverを含む多数の機能が付属しています。

関連する問題