在Fragment Android中的Runnable中使用"this"

whi*_*fin 1 android handler android-fragments

在我onResume()运行一个新的Handler运行以下代码行:

adapter = new FeedListAdapter(this, feed);
list.setAdapter(adapter); 
Run Code Online (Sandbox Code Playgroud)

现在,当我将此代码移动到Handler中时,this第一行内部变得不允许,因为显然它位于runnable中,如下所示:

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

现在,我的问题是如何在不创建存储当前片段的方法/变量的情况下访问我所在的片段?

我通过以下方式解决了这个问题:

private FeedListActivity myInstance(){
    return this;
}
Run Code Online (Sandbox Code Playgroud)

this改为myInstance(),但这似乎是一个不好的方式.与创建存储Fragment的新变量相同.有没有办法可以调用我正在运行的片段?

也许这会清楚地说明我想做什么:

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

所有答案都表示赞赏.

ese*_*sov 7

你使用一个内部类,它隐含地引用了外部类.您可以使用语法:FeedListActivity.this在内部类中.