0

だから私は3つのフラグメントを持つViewPagerを持っています。中央のものでは、GPS が無効になっている場合は TextView を Visible に設定し、有効になっている場合は非表示にします。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 :(");
}
  • ビューは Nearby クラスのプライベート変数です。後で通知メソッドで使用するために、ビューへの参照を onCreateView に保存していますが、ビューは常に null です。フラグメントのメソッドで「getView()」でビューを取得しようとしましたが、それもnullでした。この問題を解決する方法を教えてください。また、アプリケーションの一時停止中に GPS を有効にすると、「onProviderEnabled()」が機能しないようです。onResume で利用可能な GPS プロバイダーも確認する必要がありますか?

ありがとう!

ええ、ところで、テスト目的のためだけに、とにかく表示されないため、両方の値を VISIBLE に設定しました-テキストビューが表示されることはありません..そうではありません。:)

4

0 に答える 0