繁体   English   中英

使用SherlockFragment和SherlockTabs时如何填充列表

How to populate list when using SherlockFragment and SherlockTabs

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我使用以下功能创建了标签页:

public class MyTaber extends SherlockFragmentActivity implements ActionBar.TabListener, ViewPager.OnPageChangeListener{

TabHost mTabHost;
private Tab1MyFirstTab frgTabMyFirstTab;
private Tab2Recipes frgTabRecipes;
private Tab3Products frgTabProducts;
private Tab4FAQ frgTabFAQ;
private Tab5Settings frgTabSettings;

private ViewPager mViewPager;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.myview);
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(new MainPagerAdapter(
            getSupportFragmentManager()));
    mViewPager.setOnPageChangeListener(this);
    mViewPager.setPageMarginDrawable(R.drawable.border);
    mViewPager.setPageMargin(16);
    final ActionBar actionBar = getSupportActionBar();
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_myfirsttab_title)
            .setTabListener(this).setIcon(R.drawable.ic_tab1_inactive));
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_recipes_title)
            .setTabListener(this).setIcon(R.drawable.ic_tab2_inactive));
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_products_title)
            .setTabListener(this).setIcon(R.drawable.ic_tab3_inactive));
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_faq_title)
            .setTabListener(this).setIcon(R.drawable.ic_tab4_inactive));
    actionBar.addTab(actionBar.newTab()
            .setText(R.string.tab_settings_title).setTabListener(this).setIcon(R.drawable.ic_tab5_inactive));
}

private class MainPagerAdapter extends FragmentPagerAdapter {
    public MainPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return (frgTabMyFirstTab = new Tab1MyFirstTab());

        case 1:
            return (frgTabRecipes = new Tab2Recipes());

        case 2:
            return (frgTabProducts = new Tab3Products());

        case 3:
            return (frgTabFAQ = new Tab4FAQ());

        case 4:
            return (frgTabSettings = new Tab5Settings());

        }
        return null;
    }

每个选项卡都使用SherlockFragment以类似的方式创建:

public class Tab3Products extends SherlockFragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.tab3products, container, false);

    /*
    ListView list = (ListView) view.findViewById(R.id.lvMySpecialList);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mySpecialKeys);
    list.setAdapter(adapter);
    */
    return view;

}

问题是。

  1. 我的第一个标签需要包含2个部分,上部应该是带有2个幻灯片的滑块,下部应该是包含3个项目的列表。 如何在片段中填充列表。 我尝试使用ArrayAdapter(如在注释的代码中可以看到的),并从StringArray获取字符串,但是这使我的应用程序崩溃,并出现了所有android.View.coreographer问题。

  2. 当我点击第一个列表项时,整个Tab1都需要将布局更改为类似的halfimage / halflist,但它需要是不同的片段或活动。

    1. 由于2。-我应该对我的片段使用SherlockFragment(像我一样)或SherlockFragmentActivity吗?

因此,如果现在任何人都可以提供帮助,因为标准列表和填充这些列表无法正常工作,很显然,我缺少一些知识,例如片段如何工作以及如何在同一选项卡中启动不同的片段/活动。

1 个回复

您无法在片段中添加片段,因为您无法在活动中添加活动。 你的方法很好。 一个fFragmentActivity可以管理片段

如果要在FragmentActivity中更改片段,则需要添加/替换它们的示例:

AlbumGridFragment fragment = new AlbumGridFragment();
                getActivity().getSupportFragmentManager().beginTransaction().setCustomAnimations(R.animator.anim_back_right, R.animator.anim_back_left, R.animator.anim_left, R.animator.anim_right)
                .replace(R.id.album_fragment, fragment).addToBackStack(MainFragmentActivity.ALBUM_GRID_TAG).commit();

这会将片段替换为专辑列表,并将片段替换为一张专辑的图像网格以及动画。 (您可以使用“添加”进行相同操作,将片段堆叠在另一个之上)

希望能帮助到你

6 使用数据列表属性自动填充时如何检测文本更改

我正在尝试让输入字段对文本更改事件做出反应。 该字段具有datalist属性以具有自动datalist功能。 据我了解,如果我想随用户类型(而不是onBlur)挂接到事件,则可以使用ng-keyup 。 当用户键入某些内容时,它工作正常,但是当他单击“自动完成”框中的选项时,它不能 ...

8 在使用光标对象填充时,如何使列表可单击?

我正在开发一个Android应用程序,以列出存储在浏览器中并使用光标和光标适配器填充到列表中的书签。 填充列表完全没有问题,我的问题全是单击。 我正在使用onItemClickListener,当用户单击列表项时,应用程序崩溃。 logcat给出了以下内容: 下面是我的代码。 ...

9 尝试使用AJax和JQUERY填充下拉列表时为空结果

我正在尝试使用Ajax和JQuery填充下拉列表,但由于将重音字符和某些特殊字符检测到而我没有找到任何结果,当我将查询限制到没有重音的某行时,我得到了一些结果。 这是我的代码: JS: PHP: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM