ViewPager 内的 ListFragments

2024-02-06

我正在写我的第一个基于片段的应用程序并遇到了一些我无法使用 API 或 Stackoverflow 解决的严重问题。

我正在使用一个浏览器在两个列表之间滑动。每个列表都有一个header按钮创建一个新的列表元素(类似于本机 Android 闹钟应用程序)。该按钮当前返回一条错误消息以进行调试。

问题是:

  • FragmentList A 返回 FragmentList B 的调试消息
  • FragmentList B 不返回调试消息

     ... // The main class
    public class DemoApp extends FragmentActivity implements ActionBar.TabListener {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    setContentView(R.layout.main);
    
    // Set up the action bar.
    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    PageAdapter mPageAdapter = new PageAdapter(getSupportFragmentManager());
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mPageAdapter);
    
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }
    });
    
    for (int i = 0; i < mPageAdapter.getCount(); i++) {
        actionBar.addTab(actionBar.newTab().setText(mPageAdapter.getPageTitle(i)).setTabListener(this));
    }
    }
    ...
    

我的定制寻呼机适配器将创建两个列表fraggent对象:

public class PageAdapter extends FragmentStatePagerAdapter {

private final int NUMBER_PAGES = 2;

public PageAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int position) {
    if (position == 0) {
        return new FoodListFragment();
    } else if (position == 1){
        return new LocationListFragment();
    } else {
        throw new IllegalArgumentException("Invalid page position: " + position);
    }
}


@Override
public int getCount() {
    return NUMBER_PAGES;
}

...

}

FoodListFragment 被剪断(除了调试输出之外,其他列表看起来类似):

public class FoodListFragment extends ListFragment implements LoaderCallbacks<Cursor> {
/*
 * (non-Javadoc)
 * 
 * @see android.support.v4.app.Fragment#onActivityCreated(android.os.Bundle)
 */
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    // add a list header with the button to create a new list item
    View v = getActivity().getLayoutInflater().inflate(R.layout.list_header, null);
    getListView().addHeaderView(v);

...
    setListAdapter(getSomeAdapter());

    // get the list header button
    ImageButton createItem = (ImageButton) getActivity().findViewById(R.id.create_new_entry);

    createItem.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.e(LOG_TAG, "onclick FoodListFragment");
        }
    });

}

主要.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<android.support.v4.view.ViewPager
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".DemoApp" />

</LinearLayout>

我发现了这个错误。在每个列表中,我调用相同的标题视图和相同的标题按钮。无法明确指定 onClick 方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ViewPager 内的 ListFragments 的相关文章

随机推荐

  • 在 SQL 中命名主键“id”与“something_id”[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 返回文档所有者以获得大量 Google 云端硬盘文档 ID 列表

    我正在尝试识别 Google 云端硬盘中一长串 近 1000 项 文档的所有者 文档之间的所有者可能有所不同 我有每个项目的唯一文档 ID 我是我所在域的 Google Apps 管理员 有一个实用程序可以让我输入文档 ID 并查看该特定项
  • 如何更改属性

    我有一个组件 其中包含一组三个自定义按钮 我想使用这些按钮作为录音机的控件 我陷入了第一阶段 我想根据按钮的功能更改按钮上显示的符号 我试图通过改变他们的方式来实现这一目标xlink href属性 我使用 svg 但在控制台中得到了这个 E
  • 自定义 Spinner TextView 被切断

    因此 在随附的屏幕截图和代码示例中 您可以看到我的自定义微调器 正如你所看到的 无论我尝试做什么 我的文字都会被切断 九个补丁图像设置正确 其上也有文本填充 我几乎拥有一切权利 却完全不知所措 定制旋转器
  • 我可以训练它来检测我的脸吗?或任何其他人面临

    我想创建一个应用程序 在其中捕获我家人的图像并检测它是谁 我可以使用 Vision API 创建云数据库来存储每个家庭成员的不同照片并标记他们的名字 这样当我从 API 提取请求时 它会扫描数据库中的图像并检测它是哪个家庭成员 而不仅仅是检
  • 诺基亚 220 s30+ 开发

    我只是想问我如何为具有 s30 平台的诺基亚 220 开发应用程序 有没有办法为此开发应用程序 看来答案是否定的 尽管名字如此 S30 https en wikipedia org wiki Series 30 2B不相关S30 https
  • PHP 是同步还是异步?

    考虑 这里 getYears 在另一个文件中 它正在获取一个查询 我在用着 list years在文件中view php 这里是同步还是异步 这段代码是程序化的 所以getYears 总是在之前执行require once view php
  • 使用 New-PSDrive 映射网络驱动器时出现问题

    我正在运行一个基于 powershell 的多线程应用程序 其中每个线程 net 任务 需要使用不同的凭据将一堆文件从一台计算机复制到另一台计算机 这是在每个 net 任务中运行的脚本 New PSDrive Name tid PSProv
  • 有没有办法获得 deque 的内部存储大小作为 vector::capacity ?

    据我了解 deque和vector都保留了一些增长空间 vector capacity 能够获取向量的内部保留空间 双端队列标准中没有这样的成员 有什么方法可以获取这些信息吗 您必须深入研究实现才能弄清楚这一点 的版本std dequegc
  • 使用 javascript 代替 Iframe 源?

    我知道我无法从浏览器中隐藏 iframe 源 检查元素 但我想通过使用 javascript 作为源 url 使 它们 难以窃取 url iframe 如果我有 我可以改变吗 www youtube com embed xxxxxxx用Ja
  • 以编程方式更改中心 X / Y 对齐约束的乘数

    如何以最简单的方式以编程方式更改乘数 对于斯威夫特 2 0 因此 对于 Y 如果将图像的顶部设置为等于 superView 的顶部 常量为 0 然后输入此代码 IBOutlet weak var topc NSLayoutConstrain
  • BPEL 中的 Restful Web 服务调用

    我的问题是 有没有什么方法可以让我在 BPEL 中使用 Google Map 或 Youtube 等静态 Web 服务 我知道 BPEL 可与具有 WSDL 文件的 SOAP Web 服务配合使用 但是 我要求做一个项目 其中应包含与 BP
  • Django 存储网站内容

    我对网络开发有点陌生 并且无法理解网站内容的存储方式 即使在查看了开源项目之后 我仍然感到困惑 假设我有一个包含多个段落的网页 我希望最终能够通过 Django 管理页面进行编辑 现在 我已经为页面设置了视图 但我不确定模型应该如何构建 到
  • 如何使用 CloudKit.js 查询 nil 值?

    使用 CloudKit js 如何构建匹配字段为零的项目的查询 我尝试过的每个排列都会失败 要么它明显匹配字符串值 即 null 或 nil 要么如果我实际上尝试传递 null 它会抛出错误 有任何想法吗 以下均无效 filterBy fi
  • 异步加载 iframe

    我有一个网页指向另一个网站 我不希望这阻止页面其余部分的加载 有没有办法异步加载它 使用 jQuery 可以实现以下效果 where url是一些网址
  • Windows 10 - 自定义协议在通过其他方法工作时从 JavaScript 调用时失败

    我成功地在注册表中定义了一个自定义协议 名为FDMyAlbsIF 该协议旨在调用批处理文件 根据接收到的参数执行不同的操作 我现在面临两个问题 通过 Windows 资源管理器调用协议时 即在路径字段中输入字符串FDMyAlbsIF AAA
  • 如何提高从 2 个表中进行选择的 SQL 查询的性能

    请帮我 如何加快这个sql查询 SELECT pa FROM ParametrickeVyhladavanie pa SELECT p FROM produkty p WHERE p KATEGORIA IN categoryArray p
  • ASP.NET Core 2.1根据DB中的数据在布局中插入CSS

    我有一个正在努力解决的问题 一些背景 用户可以在我的应用程序中选择应用程序使用哪种配色方案 此选择存储在数据库中 我想做的是基于这个选择 在页面加载时 为用户所做的选择提供 CSS 文件 我一直在尝试做的是通过在 Layout cshtml
  • spring cloud aws多个sqs监听器

    我的项目中有2个sqs监听器 我希望其中之一具有相同的设置 而其中之一具有不同的设置 我想要更改的唯一值是 maxNumberOfMessages 最实用的方法是什么 我想为其中一个侦听器设置不同的 maxNumberOfMessages
  • ViewPager 内的 ListFragments

    我正在写我的第一个基于片段的应用程序并遇到了一些我无法使用 API 或 Stackoverflow 解决的严重问题 我正在使用一个浏览器在两个列表之间滑动 每个列表都有一个header按钮创建一个新的列表元素 类似于本机 Android 闹