1

在我的onResume()我正在运行一个新的处理程序,它运行以下代码行:

adapter = new FeedListAdapter(this, feed);
list.setAdapter(adapter); 

现在,当我将此代码移动到 Handler 中时,this第一行内部的内容被禁止,因为显然它位于可运行文件中,如下所示:

new Handler().postDelayed(new Runnable() { 
    public void run() { 
        adapter = new FeedListAdapter(this, feed);
        list.setAdapter(adapter); 
    } 
}, 500);

现在,我的问题是如何访问我所在的 Fragment 而无需创建存储当前 Fragment 的方法/变量?

我通过执行以下操作解决了这个问题:

private FeedListActivity myInstance(){
    return this;
}

并更改thismyInstance(), 但这似乎是一种不好的做法。与创建一个新变量来存储片段相同。有没有办法可以调用我正在运行的片段?

也许这会让我清楚我想要做什么:

new Handler().postDelayed(new Runnable() { 
    public void run() { 
        adapter = new FeedListAdapter(getFragment(), feed);
        list.setAdapter(adapter); 
    } 
}, 500);

感谢所有答案。

4

1 回答 1

7

您使用内部类,它隐式地引用了外部类。FeedListActivity.this您可以在内部类中使用语法:

于 2013-08-09T02:36:00.343 回答