私のプロジェクトには、MainActivity という名前のアクティビティと、BrowserActivity 拡張ダイアログ サービスがあります。
MainActivity は、アプリケーションの起動時に BrowserActivity を意図します。
BrowserActivity が MainActivity の public メソッドにアクセスできるようにしたいと思います。
そのようなもの: MainActivity のメソッド:
public void chooseShare(Intent intent)
{
try
{
startActivityForResult( intent , PICK_SHARE);
} catch (android.content.ActivityNotFoundException ex)
{
Log.e("Share" , ex.getMessage());
}
}
そして、私は BrowserActivity でやりたい: (疑似コード)
((MainActivity)BrowserActivity.this.getOwnerActivity()).chooseShare(intent);
私はそれをしようとします:
MainActivity ma = new MainActivity();
ma.chooseShare(i);
ただし、動作せず、NULLPointerException がスローされます。
コールバック結果startActivityForResult()
の代わりに必要だからです。startActivity()
そして、SOF を掘り下げたところ、startActivityForResult()
で開始する必要があることがわかりましActivity
たが、 ではありませんDialog
。
ありがとうございます。