这是我的片段
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();
}
}
当我在搜索栏进度为1时运行应用程序崩溃
Log Cat
03-27 11:04:43.580:E / AndroidRuntime(9036):致命异常:主要 03-27 11:04:43.580:E / AndroidRuntime(9036):java.lang.NullPointerException 03-27 11:03:43.580:E / AndroidRuntime(9036):at com.ionc.systax.HomeFragment $ 1.onProgressChanged(HomeFragment.java:106) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.widget.SeekBar.onProgressRefresh(SeekBar.java:92) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.widget.ProgressBar.doRefreshProgress(ProgressBar.java:700) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.widget.ProgressBar.refreshProgress(ProgressBar.java:725) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.widget.ProgressBar.setProgress(ProgressBar.java:781) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.widget.AbsSeekBar.trackTouchEvent(AbsSeekBar.java:655) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:574) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.View.dispatchTouchEvent(View.java:7485) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2273) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010) 03-27 11:43:43.580:E / AndroidRuntime(9036):at com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchTouchEvent(PhoneWindow.java:2239) 03-27 11:43:43.580:E / AndroidRuntime(9036):at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1534) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.app.Activity.dispatchTouchEvent(Activity.java:2466) 03-27 11:43:43.580:E / AndroidRuntime(9036):at com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent(PhoneWindow.java:2187) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.View.dispatchPointerEvent(View.java:7665) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3813) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3697) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4935) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4914) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5012) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native 方法) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:174) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4985) 03-27 11:04:43.580:E / AndroidRuntime(9036):在android.view.ViewRootImpl $ ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5031) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:791) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.Choreographer.doCallbacks(Choreographer.java:591) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.view.Choreographer.doFrame(Choreographer.java:559) 03-27 11:03:43.580:E / AndroidRuntime(9036):在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:777) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.os.Handler.handleCallback(Handler.java:725) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.os.Handler.dispatchMessage(Handler.java:92) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.os.Looper.loop(Looper.java:137) 03-27 11:43:43.580:E / AndroidRuntime(9036):在android.app.ActivityThread.main(ActivityThread.java:5306) 03-27 11:43:43.580:E / AndroidRuntime(9036):at java.lang.reflect.Method.invokeNative(Native Method) 03-27 11:43:43.580:E / AndroidRuntime(9036):at java.lang.reflect.Method.invoke(Method.java:511) 03-27 11:03:43.580:E / AndroidRuntime(9036):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1102) 03-27 11:43: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)
使用搜索栏隐藏图像视图的另一种方法是什么?
抱歉我的英语不好
答案 0 :(得分:0)
来自Java =
(ImageView) v.findViewById(R.id.yourImage)).setVisibility(View.INVISIBLE);
然后显示Seek Bar
如果您想切换回来,也可以使Seek Bar不可见。