かなり基本的な UI を実装しようとしています。
アクティビティがあり、その中に HTTP Get を実行してフラグメント内のいくつかの値を更新するフラグメントがあります。
これで問題なく動作します。これを更新するメニューが必要です。メニューはアクティビティに含まれています。
私が抱えている問題は、メソッド呼び出しの処理方法がわからないことです。基本的に、メニューハンドラーから更新すると、フラグメント内の getActivity() が null を返すことがわかりました。
だから私はアクティビティにこのコードを持っています
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
handler = new GetData();
} catch (Exception e) {
Log.e("FFF", "Exception: " + Log.getStackTraceString(e));
}
}
GetData() は私の活動 Java クラスです
上記のハンドラーを使用すると(ハンドラーをグローバル変数にする)、onOptionsItemSelectイベントで機能しますが、フラグメントではgetActivity()がnullです。
以下のコードを使用すると、onOptionsItemSelected イベントで呼び出されたときに null が返されます
GetData handler = (GetData) getFragmentManager().findFragmentById(R.layout.verticalwetherlayout);
この部分を説明するチュートリアルはありますか? それとも私は間違ったことをしているだけですか?
クリス