我在縱向模式下,像這樣,當啓動一個細節片段在新的活動....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