Android ProgressDialog未在片段中显示
我有以下课程:Android ProgressDialog未在片段中显示,android,android-fragments,android-asynctask,progressdialog,Android,Android Fragments,Android Asynctask,Progressdialog,我有以下课程: ... public class FragmentMapa extends Fragment { /* * Atributos */ private static String LOG_TAG = "FragmentMapa"; private HomeActivity homeActivity; private GoogleMap mMapa; private DrawerLayout mDrawer;
...
public class FragmentMapa extends Fragment {
/*
* Atributos
*/
private static String LOG_TAG = "FragmentMapa";
private HomeActivity homeActivity;
private GoogleMap mMapa;
private DrawerLayout mDrawer;
private ActionBarDrawerToggle mDrawerToggle;
private ListView mDrawerList;
private ListView mDrawerRightList;
private RelativeLayout mDrawerRelativeLayout;
private String[] mRightDrawerMenuTitles;
private ImageView mDiputacionLogo;
private IncidenciasFetchAsyncTask mFetchIncidenciasTask;
private Incidencias mIs;
private CamarasFetchAsyncTask mFetchCamarasTask;
private Camaras mCams;
private ViabilidadesInvernalesFetchAsyncTask mFetchViabilidadesInvernalesTask;
private ViabilidadesInvernales mVis;
private static LatLng POS_CENTRAL = new LatLng(43.243968,-2.896957);
private static LatLng limiteSurOesteBizkaia = new LatLng(42.895853,-3.594589);
private static LatLng limiteNorEsteBizkaia = new LatLng(43.540351,-2.180099);
private static final LatLngBounds BOUNDS = new LatLngBounds(limiteSurOesteBizkaia, limiteNorEsteBizkaia);
private ArrayList<Marker> markersIncidencias = new ArrayList<Marker>();
private ArrayList<Marker> markersObras = new ArrayList<Marker>();
private ArrayList<Marker> markersCamaras = new ArrayList<Marker>();
private ArrayList<Marker> markersViabilidadInvernal = new ArrayList<Marker>();
/*
* Métodos
*/
public FragmentMapa() {
}
@Override
public void onAttach (Activity activity) {
super.onAttach(activity);
homeActivity = (HomeActivity) activity;
mRightDrawerMenuTitles = getResources().getStringArray(R.array.mapa_submenu_options);
mDrawer = homeActivity.getmDrawer();
mDrawerRightList = homeActivity.getmDrawerRightList();
mDrawerRightList.setAdapter(new ArrayAdapter<String>(
homeActivity.getSupportActionBar().getThemedContext(),
R.layout.rightdrawer_map_list_item,
mRightDrawerMenuTitles
));
mDrawerRightList.setOnItemClickListener(new DrawerItemClickListener());
}
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.mapa, container, false);
setupMapIfNeeded();
return rootView;
}
private void setupMapIfNeeded() {
if( mMapa == null ){
SupportMapFragment smf = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapaPrincipal);
if( smf != null ){
//Toast.makeText(getActivity(), "VAAAMOOSS", Toast.LENGTH_SHORT).show();
mMapa = smf.getMap();
}/*else{
Toast.makeText(getActivity(), "smf es null...", Toast.LENGTH_SHORT).show();
}*/
if( mMapa != null ){
setupMap();
}
}
}
private void setupMap() {
//Toast.makeText(getActivity(), "A configurar el mapa!!", Toast.LENGTH_SHORT).show();
CameraPosition camPos;
camPos = new CameraPosition.Builder()
.target(POS_CENTRAL)
.zoom((float) 9.5)
.build();
final CameraUpdate camUpd =
CameraUpdateFactory.newCameraPosition(camPos);
mMapa.animateCamera(camUpd);
mMapa.setOnCameraChangeListener(new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition newPos) {
float maxZoom = 17.0f;
if( !BOUNDS.contains(newPos.target) ){
//Mover la cámara al centro si se
//va más allá de los límites
mMapa.animateCamera(camUpd);
}
if(newPos.zoom > maxZoom){
mMapa.animateCamera(CameraUpdateFactory.zoomTo(maxZoom));
}
}
});
mMapa.setOnInfoWindowClickListener( new OnInfoWindowClickListener(){
public void onInfoWindowClick(Marker aMarker) {
Toast.makeText(getActivity(), "info window pulsado", Toast.LENGTH_SHORT).show();
if( markersCamaras.contains(aMarker) ){
Camara c = mCams.getCamaraByCoord(aMarker.getPosition());
homeActivity.showCameraFragment(c);
}
}
});
}
@Override
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onViewStateRestored (Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
}
@Override
public void onStart () {
super.onStart();
}
@Override
public void onResume () {
super.onResume();
}
@Override
public void onPause () {
super.onPause();
}
@Override
public void onStop () {
super.onStop();
}
@Override
public void onDestroyView () {
super.onDestroyView();
}
@Override
public void onDestroy () {
super.onDestroy();
}
@Override
public void onDetach () {
super.onDetach();
}
/* The click listener for ListView in the navigation drawer */
private class DrawerItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final int thePos = position;
mDrawer.setDrawerListener( new DrawerLayout.SimpleDrawerListener(){
@Override
public void onDrawerClosed(View drawerView) {
boolean wasChecked = !mDrawerRightList.isItemChecked(thePos);
//Toast.makeText(homeActivity, "Item pulsado: " + wasChecked, Toast.LENGTH_SHORT).show();
mDrawerRightList.setItemChecked(thePos, !wasChecked);
switch (thePos) {
case 0:
//Incidencias
//Toast.makeText(homeActivity, "Incidencias", Toast.LENGTH_SHORT).show();
if(!wasChecked){
//Toast.makeText(homeActivity, "Incidencias estaba sin pulsar", Toast.LENGTH_SHORT).show();
getIncidenciasObras();
introducirIncidencias();
}else{
//Toast.makeText(homeActivity, "Incidencias estaba pulsado", Toast.LENGTH_SHORT).show();
removeIncidenciasMarkers();
}
break;
case 1:
//Obras
//Toast.makeText(homeActivity, "Obras", Toast.LENGTH_SHORT).show();
if(!wasChecked){
//Toast.makeText(homeActivity, "Obras estaba sin pulsar", Toast.LENGTH_SHORT).show();
getIncidenciasObras();
introducirObras();
}else{
//Toast.makeText(homeActivity, "Obras estaba pulsado", Toast.LENGTH_SHORT).show();
removeObrasMarkers();
}
break;
case 2:
//Cámaras
//Toast.makeText(homeActivity, "Cámaras", Toast.LENGTH_SHORT).show();
if(!wasChecked) {
getCamaras();
introducirCamaras();
}else
removeCamarasMarkers();
break;
case 3:
//Viabilidad invernal
//Toast.makeText(homeActivity, "Viabilidad invernal", Toast.LENGTH_SHORT).show();
if(!wasChecked){
getViabilidadesInvernales();
introducirViabilidadInvernal();
}else
removeViabilidadInvernalMarkers();
break;
default:
//Toast.makeText(homeActivity, "Default", Toast.LENGTH_SHORT).show();
break;
}
}
});
if(mDrawer.isDrawerOpen(Gravity.END))
mDrawer.closeDrawer(mDrawerRightList);
}
}
private void getViabilidadesInvernales(){
mVis = ViabilidadesInvernales.getInstance();
if(mVis.isEmptyViabilidadesInvernales()){
mFetchViabilidadesInvernalesTask = new ViabilidadesInvernalesFetchAsyncTask(homeActivity);
try {
mVis = mFetchViabilidadesInvernalesTask.execute("es").get();
} catch (InterruptedException e) {
Log.e(LOG_TAG, "Error InterruptedException: " + e.getMessage());
e.printStackTrace();
} catch (ExecutionException e) {
Log.e(LOG_TAG, "Error ExecutionException: " + e.getMessage());
e.printStackTrace();
}
}
}
...
private void introducirViabilidadInvernal() {
if(markersViabilidadInvernal.isEmpty()){
Marker aMarker;
for (ViabilidadInvernal vi : mVis.getViabilidades()) {
String estado = "";
BitmapDescriptor icon;
if(vi.getEstado() == PuertoEstado.ABIERTO){
estado = getResources().getString(R.string.mapa_puerto_abierto);
icon = BitmapDescriptorFactory.fromResource(R.drawable.marker_puertoabierto);
}else{
//vi.getEstado() == PuertoEstado.CERRADO
estado = getResources().getString(R.string.mapa_puerto_cerrado);
icon = BitmapDescriptorFactory.fromResource(R.drawable.marker_puertocerrado);
}
aMarker = mMapa.addMarker(new MarkerOptions()
.position(vi.getCoord())
.title(vi.getT())
.snippet(estado)
.icon(icon));
markersViabilidadInvernal.add(aMarker);
}
}
}
private void removeViabilidadInvernalMarkers() {
for(Marker aMarker : markersViabilidadInvernal){
aMarker.remove();
}
}
...
private class ViabilidadesInvernalesFetchAsyncTask extends AsyncTask<String, Void, ViabilidadesInvernales>{
private ProgressDialog mPd;
private HomeActivity ownerActivity;
private Context context;
private Exception exceptionToBeThrown;
public ViabilidadesInvernalesFetchAsyncTask(Activity activity){
this.ownerActivity = (HomeActivity) activity;
context = activity;
this.exceptionToBeThrown = null;
mPd = new ProgressDialog(context);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mPd.setTitle("cargando");
mPd.setMessage("miralo");
//mPd.setTitle(getResources().getString(R.string.mapa_cargando_titulo));
//mPd.setMessage(getResources().getString(R.string.mapa_cargando, getResources().getString(R.string.mapa_cargando_elemento_viabilidad)));
mPd.setCancelable(false);
mPd.setIndeterminate(true);
mPd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mPd.show();
}
@Override
protected ViabilidadesInvernales doInBackground(String... params) {
String idioma = params[0];
if(!idioma.equalsIgnoreCase("es") && !idioma.equalsIgnoreCase("eu")){
idioma = "es";
}
SystemClock.sleep(5000);
ViabilidadesInvernalesParser vip = new ViabilidadesInvernalesParser();
ViabilidadesInvernales lasViabilidades = vip.parse(idioma);
Log.d(LOG_TAG, lasViabilidades.toString());
ViabilidadesInvernales vis = ViabilidadesInvernales.getInstance();
return vis;
}
@Override
protected void onPostExecute(ViabilidadesInvernales vis) {
super.onPostExecute(vis);
mVis = vis;
if(mPd != null){
mPd.dismiss();
}
// Check if exception exists.
//if (exceptionToBeThrown != null) {
//TODO
//ownerActivity.handleXXX();
//throw exceptionToBeThrown;
//}
}
}
....
}
。。。
公共类FragmentMapa扩展了Fragment{
/*
*心房肌
*/
私有静态字符串LOG_TAG=“FragmentMapa”;
私人家庭活动;
私人谷歌地图;
私人抽屉布置图;
私有操作bardrawertoggle mDrawerToggle;
私有列表视图mDrawerList;
私有列表视图mDrawerRightList;
私有相对性布局;
私有字符串[]mrightdrawerminutitles;
私有ImageView mDiputacionLogo;
私人事件处理异步任务MFETCHENCIDENCIASTASK;
私人事故管理信息系统;
私人CamarasFetchAsyncTask mFetchCamarasTask;
私人卡马拉斯mCams;
私有通道InvernalesFetchAsyncTask MFETCH通道InvernalesTask;
私人车道专用mVis;
专用静态车床位置=新车床(43.243968,-2.896957);
私人静态LatLng limiteSurOesteBizkaia=新LatLng(42.895853,-3.594589);
私人静态LatLng limiteNorEsteBizkaia=新LatLng(43.540351,-2.180099);
私有静态最终LatLngBounds边界=新LatLngBounds(limiteSurOesteBizkaia,LimitenOroEsteBizkaia);
private ArrayList markersIncidencias=new ArrayList();
private ArrayList markersObras=new ArrayList();
private ArrayList markersCamaras=new ArrayList();
私有ArrayList MarkersViabilidInvernal=新ArrayList();
/*
*梅托多
*/
公共片段mapa(){
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
家庭活动=(家庭活动)活动;
mRightDrawerMenuTitles=getResources().getStringArray(R.array.mapa_子菜单_选项);
mDrawer=homeActivity.getmDrawer();
mDrawerRightList=homeActivity.getmDrawerRightList();
mDrawerRightList.setAdapter(新阵列适配器)(
homeActivity.getSupportActionBar().getThemedContext(),
R.layout.rightdrawer\u地图\u列表\u项目,
mRightDrawerMenuTitles
));
mDrawerRightList.setOnItemClickListener(新的DrawerItemClickListener());
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.mapa,容器,false);
setupmapifneed();
返回rootView;
}
私有void setupMapIfNeeded(){
如果(mMapa==null){
SupportMapFragment smf=(SupportMapFragment)getChildFragmentManager();
如果(smf!=null){
//Toast.makeText(getActivity(),“VAAAMOOSS”,Toast.LENGTH_SHORT.show();
mMapa=smf.getMap();
}/*否则{
Toast.makeText(getActivity(),“smf es null…”,Toast.LENGTH_SHORT.show();
}*/
如果(mMapa!=null){
setupMap();
}
}
}
私有void setupMap(){
//Toast.makeText(getActivity(),“配置程序el-mapa!!”,Toast.LENGTH\u SHORT.show();
CameraPosition camPos;
camPos=新的CameraPosition.Builder()
.目标(中环位置)
.缩放((浮动)9.5)
.build();
最终镜头更新camUpd=
CameraUpdateFactory.newCameraPosition(camPos);
mMapa.animateCamera(camUpd);
mMapa.setOnCameraChangeListener(新OnCameraChangeListener(){
@凌驾
CameraChange上的公共无效(CameraPosition newPos){
浮点最大缩放=17.0f;
如果(!BOUNDS.contains(newPos.target)){
//卡马拉中心酒店
//瓦马斯·阿勒德·洛斯·莱米特斯
mMapa.animateCamera(camUpd);
}
如果(newPos.zoom>maxZoom){
mMapa.animateCamera(CameraUpdateFactory.zoomTo(maxZoom));
}
}
});
mMapa.setOnInfoWindowClickListener(新的OnInfoWindowClickListener(){
公共无效信息窗口单击(标记aMarker){
Toast.makeText(getActivity(),“信息窗口脉冲”,Toast.LENGTH_SHORT).show();
if(markersCamaras.contains(aMarker)){
Camara c=mCams.getCamaraByCoord(aMarker.getPosition());
家庭活动。showCameraFragment(c);
}
}
});
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
@凌驾
ViewStateRestored上的公共无效(Bundle savedInstanceState){
super.onViewStateRestored(savedInstanceState);
}
@凌驾
公共void onStart(){
super.onStart();
}
@凌驾
恢复时公开作废(){
super.onResume();
}
@凌驾
暂停时的公共无效(){
super.onPause();
}
@凌驾
顶部的公共无效(){
super.onStop();
}
@凌驾
公共无效onDestroyView(){
super.onDestroyView();
}
@凌驾
公共存储区(){
super.ondestory();
}
@凌驾
公共无效连接(){
super.onDetach();
}
/*在导航抽屉中单击ListView的侦听器*/
私有类DrawerItemClickListener实现了OnItemClickListener{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
最终int thePos=位置;
mDrawer.setDrawerListener(新的DrawerLayout.SimpleDrawerListener(){
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
布尔值wasChecked=!mDrawerRightList.isItemChecked(POS);
//Toast.makeText(ho)