Диалог оповещения появляется дважды перед началом нового намерения - PullRequest
1 голос
/ 07 июня 2019

Я сталкиваюсь с поведением, которое появляется во многих моих диалоговых окнах с предупреждениями.Существующие ответы, кажется, не относятся к поведению моего кода.После нажатия кнопки «Да» появляется второе похожее диалоговое окно с предупреждением до вызова намерения.

public class MapsActivity extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view = inflater.inflate(R.layout.fragment_maps, container, false);

        statusCheck();
        return view();
     }

    public void statusCheck() {
        final LocationManager manager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
        if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            buildAlertMessageNoGps();

        }
    }

      private void buildAlertMessageNoGps() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
        builder.setMessage("Your GPS seems to be disabled, do you want to enable it?")
                .setCancelable(false)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, final int id) {
                        startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, final int id) {
                        dialog.cancel();
                    }
                });
        final AlertDialog alert = builder.create();
        alert.show();
    }

}

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Не странно ли создавать другую переменную для .show ()?Попробуйте это

final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
        builder.setMessage("Your GPS seems to be disabled, do you want to enable it?")
                .setCancelable(false)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, final int id) {
                        startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, final int id) {
                        dialog.cancel();
                    }
                }).show();
0 голосов
/ 07 июня 2019

Показывает, что чего-то не хватает, например: ... Builder ( view .getContext ()), откуда появилось это представление?

также

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
// Inflate the layout for this fragment
    view = inflater.inflate(R.layout.fragment_maps, container, false);

    statusCheck();

   // MISSING: return the view here

 }
...