Abdullah Al Mamun
Abdullah Al Mamun

Reputation: 351

Not working AlertDialog.Builder inside a Fragment...my code is given below

It is showing error

on the line where I written ACTION_LOCATION_SOURCE_SETTINGS & where I written finish() method.....plz help
Error is : ACTION_LOCATION_SOURCE_SETTINGS cannot be resolved or is not a field The method finish() is undefined for the type new DialogInterface.OnClickListener(){}

 package com.mamun.tasktest;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.LocationManager;
import android.provider.Settings;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;


public class FragmentB extends Fragment implements OnClickListener {


    private Button btnLocation;
    private  LocationManager manager;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_b, null, false);

        btnLocation = (Button) view.findViewById(R.id.btnLocation);
        btnLocation.setOnClickListener(this);
        manager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
        return view;
    }

    @Override
    public void onClick(View v) {
        if(isMapAvailalble())
        {

            if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                  AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                  builder.setTitle("Location Manager");
                  builder.setMessage("GPS is currently disabled.\nWould you like to change these settings now?");
                  builder.setPositiveButton("Yes",
                      new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                          Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                          startActivity(i);
                        }
                      });
                  builder.setNegativeButton("No",
                      new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                          finish();
                        }
                      });
                  builder.create().show();
                }




        Intent i = new Intent(getActivity(), MapActivity.class);
        startActivity(i);
        }


    }

    public boolean isMapAvailalble()
    {
        int resultcode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity());
        if(ConnectionResult.SUCCESS==resultcode)
        {
            return true;
        }
        else if(GooglePlayServicesUtil.isUserRecoverableError(resultcode))
        {
            Dialog d = GooglePlayServicesUtil.getErrorDialog(resultcode, getActivity(), 1);
            d.show();
        }
        else
        {
            Toast.makeText(getActivity()," Google Map API is not supported in your device",Toast.LENGTH_LONG).show();
        }
        return false;
    }







}

Upvotes: 0

Views: 841

Answers (2)

ViliusK
ViliusK

Reputation: 11555

Are you sure you want this type of Settings as defined here in your statement: import android.media.audiofx.BassBoost.Settings;?

And

For the finish() you need to call it on the Activity object, so you need to put getActivity().finish().

Upvotes: 0

vipul mittal
vipul mittal

Reputation: 17401

Change to:

getActivity().finish();

Upvotes: 1

Related Questions