我在纵向模式下,像这样,当启动一个细节片段在新的活动....Fragement参考返回null
fDetail=(HistoryOFragDetail) manager.findFragmentById(R.id.fragment2);
if(fDetail!=null&& fDetail.isVisible())
{
fDetail.changeData(st);
}else{ // portrait
Intent intent = new Intent(this, HistoryOActFrag.class);
intent.putExtra("index", st);
startActivity(intent);
}
而在纵向模式我加载片段是这样的...
public class HistoryOActFrag extends SherlockFragmentActivity...
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.history_actifrag_layout);
Intent intent = getIntent();
String myIndex = intent.getStringExtra("index");
HistoryOFragDetail f2 = (HistoryOFragDetail)getSupportFragmentManager().findFragmentById(R.id.fragment2);
f2.changeData(myIndex);
}
布局如下...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/fragment2"
android:name="com.myFragTesting.OIn.HistoryOFragDetail"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
问题...
每次我尝试在活动中获得对片段的引用时,我只是从我得到一个NPE。下面的代码添加失败。
public class HistoryOActFrag extends SherlockFragmentActivity...
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.history_actifrag_layout);
Intent intent = getIntent();
String myIndex = intent.getStringExtra("index");
HistoryOFragDetail f2 = (HistoryOFragDetail)getSupportFragmentManager().findFragmentById(R.id.fragment2);
f2.changeData(myIndex);
/// ..................new step here ....
HistoryOFragMaster f1 = (HistoryOFragMaster)getSupportFragmentManager().findFragmentById(R.id.fragment1);
Log.d("myLog","......f1 = "+f1"); //// = NULL ???? Why can't I do this ?
}
在景观时我把我的碎片放在一个活动和参考工作正常。
我意识到fragment1在活动中,我刚才来自我的碎片是在两个单独的活动时,我不能得到一个参考?更好的是什么是正确的方法来获得对f1的参考?
- 感谢您的帮助。
如果仅使用xml布局添加片段,该怎么办? – AhabLives 2014-09-10 18:29:36
以上代码中的title_fragment_container是以xml布局保存的片段。 – 2014-09-10 18:30:40