对于我最新的 Android 应用程序(API 级别 15),我使用了新架构,其中 GUI 中的每个选项卡都由在 PagerAdapter 注册的 Fragment 类表示,并且 Tab 事件由 TabListener 处理。
但是,当我想在两个选项卡之间发送数据时,我遇到了问题。我使用此页面中的代码示例并编写了以下代码以将数据从选项卡发送到我的活动:
@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() 显示正确,因此 Tab 将其数据发送到 Activity。还会显示片段 ID。之后,输出始终为“CarerActivity:onDataReceived Fragment null!” 这使我无法调用 Fragment 的任何方法(因为它为空)。
在我的 R.java 中
public static final int configurationfragment=0x7f080001;
可以在下面找到
public static final class id{
.
任何人都知道我做错了什么或在哪里寻找错误?
设置:三星 Galaxy Nexus,Android 4.0.3,API 级别 15,Java 1.6,Mac OS 10.8,Eclipse Juno。