片段中的Activity为NULL,但在Android中并不总是如此

时间:2017-06-03 13:56:33

标签: android android-fragments android-activity null

我的片段中this.getActivity()为NULL,并从实际活动本身调用。这并不总是会发生,但我该如何解决这个问题?

sportButton.setBackgroundColor(ViewHelper.getColor(this.getActivity()));

EventActivity.java

eventsFragment.setUpEvents(getEventApplication());

EventsFragment.java

public void setUpEvents(Application application) {
      sportButton.setBackgroundColor(ViewHelper.getColor(this.getActivity()));

2 个答案:

答案 0 :(得分:0)

  

只需从this移除this.getActivity(),如果您extends,则移除Activity   来自AppCompatActivity的{​​{1}}然后你必须用同样的方式投射它   如下所示

(AppCompatActivity) getActivity()

答案 1 :(得分:0)

如果它的片段在父活动中运行,那么在这种情况下,你可以在EventActivity中创建一个静态Activity对象,并在片段中引用而不是getActivity(),因为它保证可用于片段。

EventActivity.class

protected Activity activity;

onResume()
{
    activity = this;
}

EventsFragment.class

sportButton.setBackgroundColor(ViewHelper.getColor(EventActivity.activity));

希望有所帮助