私はクラスがCursorAdapterを拡張しているので、((Activity) context).startActivityForResult
を使用します。しかし、どうすればonActivityResultを使うことができますか?どうもありがとう。非アクティビティクラスのonActivityResultメソッドを使用してリサットを取得する方法
0
A
答えて
0
あなたの活動では、onActivityResult()
を上書きします。
を参照してください:あなたは、通知の他の手段を使用する場合は、送信者と受信者の両方が独自のコードであれば、LocalBroadcastManagerとBroadcastReceiverを、試してみる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
を含む多数の機能が付属しています。
関連する問題
- 1. 非アクティビティクラス(Android)のonActivityResultを取得
- 2. アンドロイドの非アクティビティクラスでActionBarのタイトルを取得する方法
- 3. 非アクティビティクラスからコンテキストを取得する方法は?
- 4. アクティビティフォームのメソッドを非アクティビティクラスで呼び出す方法
- 5. 抽象的な非アクティビティクラスのコンテキストを取得します。
- 6. OOPメソッドを使用して非オブジェクトを取得しよう
- 7. アクティビティクラスを使用してフラグメントクラス内のメソッドを呼び出す
- 8. Android:アクティビティクラスのXMLのカスタム属性を取得する方法
- 9. FacebookのcallbackManagerメソッドonActivityResultがonActivityResultメソッドをコールしていません
- 10. Androidでアクティビティクラス以外のインテント値を取得する方法
- 11. 非アクティビティクラスからコンテキストを取得するには
- 12. 非アクティビティクラスからの非アクティビティクラスのAndroid getResource?
- 13. アクティビティクラス内でコンテキストを取得する方法
- 14. スカラーメタアノテーションを使用してメソッドの戻り値を取得する方法は?
- 15. VisualVMを使用してメソッドの総トータル時間を取得する方法
- 16. IOrganisationservice、.retrieveメソッドを使用してアカウントエンティティのシステム属性を取得する方法
- 17. PHPでpostメソッドを使用してループテキストフィールドの値を取得する方法
- 18. sed/awkを使用してXML非コメントセクションを取得する方法
- 19. アクティビティクラスで非同期タスクの結果を取得
- 20. httpメソッドを使用してダイアログダイアログでデータを取得する方法は?
- 21. Laravel Eloquent:whereHas()メソッドを使用して関連レコードを取得する方法は?
- 22. Javaメソッドを使用してUIでデータを取得する方法
- 23. SimpleInjectorを使用してネストされたメソッドでDbContextを取得する方法
- 24. Androidの非アクティビティクラスの内部ストレージを使用する
- 25. androidのonActivityResultの使用方法
- 26. 長時間実行される非アクティビティクラスのためにアンドロイドのコンテキストを取得する最善の方法は?
- 27. 非アクティビティクラスまたは任意の静的メソッドでstartManagingCursorを呼び出してsqliteからデータを取得する方法(アンドロイドで)
- 28. 配列を使用して複数のobjを取得し、それらのメソッドを使用する方法は?
- 29. onActivityResult()でstringExtraを取得する方法をインテントに渡しますか?
- 30. onActivityResultでオブジェクトを取得