最新の Android アプリケーション (API レベル 15) では、GUI の各タブが PagerAdapter に登録された Fragment クラスによって表され、Tab イベントが TabListener によって処理される新しいアーキテクチャを使用しました。
ただし、2 つのタブ間でデータを送信したい場合、問題が発生します。このページのコード サンプルを使用し、次のコードを記述して、タブからアクティビティにデータを送信しました。
@Override
public void onDataReceived(Map<String, List<Map<Integer, String>>> receivedData) {
Log.i("CarerActivity:onDataReceived", "Map received by Fragment.");
Log.i("CarerActivity:onDataReceived", receivedData.toString());
Log.i("Fragment ID", ""+R.id.configurationfragment);
TabConfiguration configurationFragment = (TabConfiguration) getSupportFragmentManager().findFragmentById(R.id.configurationfragment);
if(configurationFragment != null){
Log.i("CarerActivity:onDataReceived", "Fragment not null.");
}else{
Log.i("CarerActivity:onDataReceived", "Fragment null!");
}
}
receivedData.toString() が正しく表示されるため、タブはそのデータをアクティビティに送信します。フラグメント ID も表示されます。その後、出力は常に「CarerActivity:onDataReceived Fragment null!」になります。これにより、フラグメントのメソッドを呼び出すことができなくなります(nullであるため)。
私のR.Javaで行
public static final int configurationfragment=0x7f080001;
の下にあります
public static final class id{
.
誰が私が間違っているのか、またはどこでエラーを探すべきか考えましたか?
セットアップ: Android 4.0.3、API レベル 15、Java 1.6、Mac OS 10.8、Eclipse Juno を搭載した Samsung Galaxy Nexus。