【问题标题】:How to access getLoaderManager() inside a setOnItemClickListener() overriding an onItemClick()?如何在覆盖 onItemClick() 的 setOnItemClickListener() 中访问 getLoaderManager()?
【发布时间】:2012-06-20 23:29:14
【问题描述】:

所以我被困在如何从该范围内访问我的 getLoadManager 。我真正想做的就是刷新光标,因为 LoaderManager 在到达该点之前已经创建,但我现在除了调用 getLoaderManager() 之外真的不知道如何完成它。问题是我不能在那个范围内。有任何想法吗?提前致谢。

calendar.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            /*Stuff thats not really important to show*/

        }
    });

【问题讨论】:

    标签: android debugging android-loadermanager android-cursor android-cursorloader


    【解决方案1】:

    你可以使用,

    ActivityName.this.getLoaderManager();
    

    【讨论】:

    • 我有一个简短的问题。在类的正常范围内说this时,和说ActivityName.this一样吗?
    • 其实我还有一个问题,现在我正在测试我的代码。关于getLoaderManager().initLoader(1, bundle, this)。让我们假设我想在上面使用相同的加载器。但我想提供一个新的光标。我怎样才能做到这一点?当我再次这样做时,它不起作用。但是当我提供不同的 ID 时,它可以工作。很抱歉所有的问题!我就是喜欢透彻的理解。事实上,如果我继续点击其他日期,它不会更新,我假设它使用相同的光标,但它没有更新。
    • 是的。更具体地说,ActivityName.this 指的是ActivityName 类的当前实例。这被称为qualified this
    • 我怀疑你想将this 传递给initLoader。如果你这样做了,你将传递一个对你的匿名类的引用。 initLoader 的第三个参数接受一个类型为 LoaderCallbacks&lt;D&gt; 的对象。话虽如此,我猜你想通过ActivityName.this 代替(假设ActivityName implements LoaderCallbacks&lt;Cursor&gt;)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2015-11-14
    • 1970-01-01
    • 2021-07-16
    • 2016-12-16
    • 2011-01-27
    相关资源
    最近更新 更多