Pergunta

This is my fragment

public class HomeFragment extends Fragment implements  LocationListener{

private GoogleMap map;
View rootView;
public Global global;

private Marker ubicacionActual;
private Marker destino;
private SeekBar tipoTaxi;

private ImageView taxy;
private ImageView car;
private ImageView deportivo;
private ImageView van;

public HomeFragment(){}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    taxy = (ImageView)getActivity().findViewById(R.id.taxi);
    car = (ImageView)getActivity().findViewById(R.id.car);
    deportivo = (ImageView)getActivity().findViewById(R.id.deport);
    van = (ImageView)getActivity().findViewById(R.id.van);


    if(Global.flag ==0){ 
          rootView = inflater.inflate(R.layout.fragment_home, null);

          Global.v = rootView;

          Global.flag=1;

      try {

              setUpMap();

          } catch (InflateException e) {


          }
      }
      else{

      rootView = Global.v;

      }

    tipoTaxi = (SeekBar) rootView.findViewById(R.id.seekBar1);
    tipoTaxi.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
             seekBar.setProgress(progress);
             if(progress == 0){

                 car.setVisibility(View.INVISIBLE);
                 deportivo.setVisibility(View.INVISIBLE);
                 van.setVisibility(View.INVISIBLE);

             }



        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

    });




     return rootView;

}

private void setUpMap() {

    // Get LocationManager object from System Service LOCATION_SERVICE


    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

    LocationManager locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);

    // Create a criteria object to retrieve provider
    Criteria criteria = new Criteria();

    // Get the name of the best provider
    String provider = locationManager.getBestProvider(criteria, true);

    // Get Current Location
    Location myLocation = locationManager.getLastKnownLocation(provider);

    //set map type
    map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
    map.setTrafficEnabled(true);
    map.setMyLocationEnabled(true);

    // Get latitude of the current location
    double latitude = myLocation.getLatitude();

    // Get longitude of the current location
    double longitude = myLocation.getLongitude();

    // Create a LatLng object for the current location
    LatLng latLng = new LatLng(latitude, longitude);      

    // Show the current location in Google Map        
    map.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    // Zoom in the Google Map
    map.animateCamera(CameraUpdateFactory.zoomTo(20));
    ubicacionActual = map.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("Ubicacion Actual"));
    ubicacionActual.showInfoWindow();


   map.setOnMapClickListener(new OnMapClickListener(){

        public void onMapClick(LatLng latLng) {


            BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE);
            // Creating a marker
            MarkerOptions markerOptions = new MarkerOptions();

            // Setting the position for the marker
            markerOptions.position(latLng);
            markerOptions.icon(bitmapDescriptor);
            // Setting the title for the marker.
            // This will be displayed on taping the marker
           // markerOptions.title(latLng.latitude + " : " + latLng.longitude);
             markerOptions.title("Destino");


            // Clears the previously touched position

            // Animating to the touched position
            map.animateCamera(CameraUpdateFactory.newLatLng(latLng));


            // Placing a marker on the touched position
           destino = map.addMarker(markerOptions);   
           destino.showInfoWindow();
            map.setOnMapClickListener(null);



        }
    });

}


public void onLocationChanged(Location location) {

    String str = "Latitude: "+location.getLatitude()+"Longitude: "+location.getLongitude();

    Toast.makeText(getActivity(), str, Toast.LENGTH_LONG).show();
}

@Override
public void onProviderDisabled(String provider) {

    /******** Called when User off Gps *********/

    Toast.makeText(getActivity(), "Gps apagado ", Toast.LENGTH_LONG).show();
}

@Override
public void onProviderEnabled(String provider) {

    /******** Called when User on Gps  *********/

    Toast.makeText(getActivity(), "Gps prendido ", Toast.LENGTH_LONG).show();

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {


}


@SuppressWarnings("unused")
private void buildAlertMessageNoGps() {
    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage("Tu GPS parece estar apagado para tener un mejor funcionamiento de la aplicacion te sugerimos encenderlo")
           .setCancelable(false)
           .setPositiveButton("Si", 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();
}

}

When i run the app crashes when the seekbar progress is 1

The Log Cat

03-27 11:04:43.580: E/AndroidRuntime(9036): FATAL EXCEPTION: main 03-27 11:04:43.580: E/AndroidRuntime(9036): java.lang.NullPointerException 03-27 11:04:43.580: E/AndroidRuntime(9036): at com.ionc.systax.HomeFragment$1.onProgressChanged(HomeFragment.java:106) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.widget.SeekBar.onProgressRefresh(SeekBar.java:92) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:700) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.widget.ProgressBar.refreshProgress(ProgressBar.java:725) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.widget.ProgressBar.setProgress(ProgressBar.java:781) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.widget.AbsSeekBar.trackTouchEvent(AbsSeekBar.java:655) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:574) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.View.dispatchTouchEvent(View.java:7485) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580: E/AndroidRuntime(9036): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2239) 03-27 11:04:43.580: E/AndroidRuntime(9036): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1534) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.app.Activity.dispatchTouchEvent(Activity.java:2466) 03-27 11:04:43.580: E/AndroidRuntime(9036): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2187) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.View.dispatchPointerEvent(View.java:7665) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3813) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3697) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4935) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4914) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5012) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:174) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4985) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5031) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.Choreographer.doCallbacks(Choreographer.java:591) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.Choreographer.doFrame(Choreographer.java:559) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.os.Handler.handleCallback(Handler.java:725) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.os.Handler.dispatchMessage(Handler.java:92) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.os.Looper.loop(Looper.java:137) 03-27 11:04:43.580: E/AndroidRuntime(9036): at android.app.ActivityThread.main(ActivityThread.java:5306) 03-27 11:04:43.580: E/AndroidRuntime(9036): at java.lang.reflect.Method.invokeNative(Native Method) 03-27 11:04:43.580: E/AndroidRuntime(9036): at java.lang.reflect.Method.invoke(Method.java:511) 03-27 11:04:43.580: E/AndroidRuntime(9036): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 03-27 11:04:43.580: E/AndroidRuntime(9036): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 03-27 11:04:43.580: E/AndroidRuntime(9036): at dalvik.system.NativeStart.main(Native Method)

theres another way to hide imageview with a seek bar?

Sorry for my poor English

Foi útil?

Solução

From Java=

(ImageView) v.findViewById(R.id.yourImage)).setVisibility(View.INVISIBLE);

Then show the Seek Bar

You can also make the Seek Bar invisible if you want to switch back.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top