我想知道如何使用listfragment,同时使用列表顶部带有4个过滤器按钮的静态线性布局。这是问题所在:
首先,我使用ActionBarSherlock中的操作栏+标签导航:
QuestList扩展FragmentMapActivity实现ActionBar.TabListener
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getTabs();
}
private void getTabs() {
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = getSupportActionBar().newTab();
tab1.setText("Geo");
tab1.setTabListener(this);
getSupportActionBar().addTab(tab1);
ActionBar.Tab tab2 = getSupportActionBar().newTab();
tab2.setText("No Geo");
tab2.setTabListener(this);
getSupportActionBar().addTab(tab2);
}
...
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (tab.getText().toString().compareTo("Geo") == 0) {
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, Map.getInstance()).commit();
}
else {
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, List.newInstance(0)).commit();
}
}
我遇到了MapView的一些问题,但我终于解决了所有这些问题。现在的问题是我想要这样的东西:
Static LinearLayout + ListFragment
列表扩展了ListFragment
...
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initializations();
getQuests();
if (gigHash.isEmpty()) {
TextView eList = new TextView(getActivity());
eList.setText(R.string.no_loc_gig_no_items);
eList.setWidth(Gravity.CENTER);
}
else {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
mAdapter = new NoLocGigAdapter(getActivity(),R.layout.gig_noloc_row_land,gigList);
}
else {
mAdapter = new NoLocGigAdapter(getActivity(),R.layout.gig_noloc_row,gigList);
}
setListAdapter(mAdapter);
}
}
...
所以我使用自己的适配器,我从服务中获取所有物品。
问题是,在执行事务时,我只能使用一个片段,并且我必须使用我自己的ArrayAdapter显示这些项目,所以我不知道如何将静态代码的一部分包含到该视图中。
有什么建议吗?我认为用碎片处理它有点奇怪!
PS:首先,我认为我可以调用一个片段,这个,在linearlayout中调用一个静态xml,里面有一个ListFragment,但我想我不能这样做,对吧?