我的活动包含一个列表视图(左侧)和一个右侧的片段容器(fill_parent) 在容器中,我想加载大约10个片段。
活动应该像设置页面一样,在左侧(列表视图)中选择一个动作/类别,在右侧"面板"您会看到该类别可用的多个选项。
代码工作正常,除了在显示活动时片段未全部加载,因此如果我点击一个类别(左侧列表视图项),容器(右侧)不显示它#s; s内容。点击左侧的多个项目后......最终......右侧开始显示从一开始就应该显示的内容。
我的问题是,如何在活动开始时显示一些Toast,它会一直显示在屏幕上,直到所有片段都被加载?
所以相关的代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
ListView lv = (ListView) findViewById(R.id.id_lista_optiuni); // the left-side listview
FragmentManager fragmentManager = getFragmentManager();
String[] values = new String[] { "Category one",
"Category two",
"Category three",
... (here are the rest values of course)
"Category ten"
};
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lv.setTextFilterEnabled(true);
lv.setItemChecked(1, true);
MySimpleArrayAdapter adapter = new MySimpleArrayAdapter(this, values); // here the adapter generates the design of the left listview
lv.setAdapter(adapter);
if (savedInstanceState != null) {
// Here I restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
lv.setItemChecked(mCurCheckPosition, true);
lv.setSelected(true);
FragmentTransaction transa = getFragmentManager().beginTransaction();
mymerc= (merc_fragment) fragmentManager.findFragmentByTag("merc");
if (mymerc == null) {
mymerc = new merc_fragment ();
transa.add(R.id.frag_container, mymerc, "merc");
}
mysort= (sort_fragment) fragmentManager.findFragmentByTag("sort");
if (mysort == null) {
mysort = new sort_fragment ();
transa.add(R.id.frag_container, mysort, "sort");
}
... // here follow the rest of the fragments
... // and now I decide which fragment I hide and which one I put on display
transa.hide(mymerc);
transa.hide(myment);
... (all other fragments get hidden except one)
fragmentOnDisplay = mysort;
transa.commit();
// next I have the onItemClick event where I decide which fragment to display and display it.
所以这是代码,它可以工作,但就像我说的,加载所有片段(可能)需要一段时间,所以当用户出现左侧"菜单" listview,如果他立即开始点击项目,则右侧没有显示任何内容。
请不要建议我使用NavigationDrawer或TABHost或其他方法。这是我想要的,它简单明了。 请帮我实现这个目标。我想要的只是一条消息,它将通知用户片段已完成加载。
谢谢