0

所以我有一个包含三个片段的 ViewPager。在中间,如果 GPS 已停用,我想将 TextView 设置为 Visible,如果 GPS 已激活,则将其隐藏。为了对 GPS 模块可用性的变化做出反应,我正在做这样的事情:

@Override
public void onProviderDisabled(String provider) {
    if (provider.equals(LocationManager.GPS_PROVIDER)) {
        // gps deactivated, sucks dude
        GPS_ACTIVE = false;
        ((Nearby) mTabsAdapter.getItem(1)).notifyGpsDeactivated();
    }
}

@Override
public void onProviderEnabled(String provider) {
    if (provider.equals(LocationManager.GPS_PROVIDER)) {
        // gps activated, start again!
        GPS_ACTIVE = true;
        ((Nearby) mTabsAdapter.getItem(1)).notifyGpsActivated();
    }
}

在“附近”片段中,它看起来像这样:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_nearby, null, false);
    int VISIBLE = (SHOW_GPS_NOTIFICATION) ? View.VISIBLE : View.GONE;
    Log.d("Nearby", "Show gps not? " + SHOW_GPS_NOTIFICATION);
    view.findViewById(R.id.nearby_notification_activategps).setVisibility(
            VISIBLE);
    return view;
}

public void notifyGpsActivated() {
    SHOW_GPS_NOTIFICATION = false;
    if (view != null)
        view.findViewById(R.id.nearby_notification_activategps)
                .setVisibility(View.VISIBLE);
    else
        Log.d("Nearby", "View is null :(");
}

public void notifyGpsDeactivated() {
    Log.d("Nearby", "Gps deactivated.");
    SHOW_GPS_NOTIFICATION = true;
    if (view != null)
        view.findViewById(R.id.nearby_notification_activategps)
                .setVisibility(View.VISIBLE);
    else
        Log.d("Nearby", "View is null :(");
}
  • View 是 Nearby 类中的私有变量,我在 onCreateView 中保存对视图的引用,以便稍后在通知方法中使用它,但视图始终为空。我什至尝试在片段的方法中使用“getView()”获取视图,但它也是空的。任何人都有建议,如何解决这个问题?此外,如果我在应用程序暂停时激活 GPS,“onProviderEnabled()”似乎不起作用 - 我是否也应该在 onResume 中检查可用的 GPS 提供程序?

谢谢!

哦,是的,顺便说一句,我将这两个值都设置为 VISIBLE,因为它永远不可见,只是为了测试目的 - 我从来没有看到 textview .. 所以不是这样。:)

4

0 回答 0