在我的onResume()
我正在运行一个新的Handler,它运行以下代码行:
adapter = new FeedListAdapter(this, feed);
list.setAdapter(adapter);
现在,当我将此代码移动到Handler中时,第一行内的this
变得不被允许,因为显然它位于runnable中,如下所示:
new Handler().postDelayed(new Runnable() {
public void run() {
adapter = new FeedListAdapter(this, feed);
list.setAdapter(adapter);
}
}, 500);
现在,我的问题是如何在不创建存储当前片段的方法/变量的情况下访问我所在的片段?
我通过以下方式解决了这个问题:
private FeedListActivity myInstance(){
return this;
}
将this
更改为myInstance()
,但这似乎是一种糟糕的方式。与创建存储Fragment的新变量相同。有没有办法可以调用我正在运行的片段?
也许这会清楚表明我想做什么:
new Handler().postDelayed(new Runnable() {
public void run() {
adapter = new FeedListAdapter(getFragment(), feed);
list.setAdapter(adapter);
}
}, 500);
感谢所有答案。
答案 0 :(得分:7)
您使用内部类,它隐式引用外部类。您可以在内部类中使用语法:FeedListActivity.this
。