我想從一個添加的Fragment
我的活動得到一個微調視圖視圖,但似乎我無法獲得片段或視圖。查找活動的片段視圖。 Android的findFragmentByTag(字符串標籤)返回null
我有一個Activity將Fragment
加到它的LinearLayout
,該片段的佈局基於來自Activity意圖的'extra'。一切正常顯示,我可以看到片段的所有視圖,但由於某種原因,當我打電話給findFragmentByTag(String tag)
它返回null,因此我無法調用getView()。
這裏是我如何加入片段代碼到我的活動:
...onCreate(){
...
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fr = new Fragment(){
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(layoutID, container, false);
}
};
ft.add(R.id.formsListActivity_Container, fr, "form_fragment_tag");
ft.commit();
...
}
然後我試圖讓這樣的片段,並得到了微調以添加字符串數組:
Fragment f = fm.findFragmentByTag("form_fragment_tag");
Spinner spinner = (Spinner) f.getView().findViewById(R.id.city_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.city_list, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
但我得到一個空例外,因爲findFragmentByTag()返回null
我做錯了什麼?我已經驗證了幾次代碼並且標籤是相同的。 我也確保spinner的id正確地位於XML佈局文件中,並且片段正在加載正確的XML佈局,因爲我可以看到它(如果註釋從片段部分獲取視圖)。
我知道這篇文章已經過時了,但是如果你將'Fragment'放在自己的類中,事情就會簡單得多。 – JDJ 2014-06-11 20:45:31