Adaptador, el cuadro de diálogo de progreso no funciona en fragmento

Tengo una clase que extiende el fragmento.

public class  oUnit  extends Fragment {

Quiero llenar la lista y agregarla al diseño lineal, así que uso el siguiente código

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
                 ProgressDialog connectionProgressDialog = new 

ProgressDialog( getActivity());
          connectionProgressDialog.setCancelable(false);
          connectionProgressDialog.setCanceledOnTouchOutside(false);
          connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
          connectionProgressDialog.setMessage("Uploading Leads...");
          connectionProgressDialog.show();

         View view = inflater.inflate(
                    R.layout.chemounit,
                    container,
                    false);


        //Intialize the record Grid
         LinearLayout formLayout = (LinearLayout)view.findViewById(R.id.UnitGrid);
        formLayout.removeAllViews();

        MainGrid = new ListView(getActivity().getApplicationContext());              
        MainGrid.setVisibility(ListView.VISIBLE);
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                 LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
         params.gravity = Gravity.RIGHT;
         MainGrid.setLayoutParams(params);


         //2. Call the web Service 



         GlobalVariables appState = (GlobalVariables) getActivity().getApplication();

         Log.d(" in Chemo unit"," the array is has "+  appState.encounters.size());

         MainGrid.setAdapter(new Encounteradapter(view.getContext(),R.id.ChemoUnitGrid ,  appState.encounters));
        // Finally add it 

         formLayout.addView(MainGrid);


       connectionProgressDialog.dismiss();

     return view;
    }

Estoy seguro de que la lista de variables globales no es nula y contiene datos (utilicé log.d para mostrar su longitud), la clase Adapter es como

public class Encounteradapter   extends ArrayAdapter<Encounter> {

    private final Context context;

    TextView textViewTime ;
    TextView textViewPatientName;
    Button ButottonArrive ;
    Button ButottonEncounter;
    Button ButottonExit; 
    ArrayList<Encounter> Encounters ; 

    public Encounteradapter(Context context, int  ResourceId,
            ArrayList<Encounter> items)
    {


        super(context, ResourceId, items);
        this.context = context;
         this.Encounters = items ; 
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.chemounitgrid, parent, false);




        Encounter EncounterObject = Encounters.get(position);

         textViewTime = (TextView) rowView.findViewById(R.id.Time);
        textViewTime.setText(EncounterObject.bookingDate);

        textViewPatientName = (TextView) rowView.findViewById(R.id.Time);
        textViewPatientName.setText(EncounterObject.Name);

        ButottonArrive = (Button) rowView.findViewById(R.id.test1);
        ButottonEncounter = (Button) rowView.findViewById(R.id.test2);
        ButottonExit = (Button) rowView.findViewById(R.id.test3);

        rowView.setTag(position);




        return rowView;
    }
}

pero no aparece nada, la lista no aparece, también intenté eliminar la sección de propiedades que puse, pero tampoco nada

este es el primer problema, el segundo intento mostrar el progreso en el fragmento OnCreate () pero no aparece, uso el siguiente código

  connectionProgressDialog = new ProgressDialog(getActivity());
  connectionProgressDialog.setCancelable(false);
  connectionProgressDialog.setCanceledOnTouchOutside(false);
  connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  connectionProgressDialog.setMessage("Uploading Leads...");
  connectionProgressDialog.show(); 

alguna idea de cómo arreglar eso, ¿me pierdo algo con el fragmento?

preguntado el 11 de junio de 12 a las 19:06

Esa ProgressDialog Deberia trabajar. ¿Estás usando el ActionBarSherlock ¿Biblioteca? -

no se que puede estar causando el ProgressDialog para no aparecer He probado tu ProgressDialog código y funciona sin problemas. -

Sí, lo probé tanto en el onCreate método de un Fragment y en el onCreateView método de la Fragment. En ambos casos el ProgressDialog aparece. -

2 Respuestas

en onCreateView intente esto

View view=inflater.inflate(R.layout.chemounit, container, false);
  ProgressDialog connectionProgressDialog = new ProgressDialog(getActivity());
  connectionProgressDialog.setCancelable(false);
  connectionProgressDialog.setCanceledOnTouchOutside(false);
  connectionProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  connectionProgressDialog.setMessage("Uploading Leads...");
 connectionProgressDialog.show();
 return view;

respondido 24 nov., 16:13

Es normal que no tengas nada en pantalla porque en el onCreateView método de inflar el diseño y configurar el ListView pero luego, cuando sea el momento de devolver la vista (el diseño de ese fragmento con el ListView donde pones los datos) haces:

return inflater.inflate(R.layout.chemounit, container, false);

que inflará de nuevo el archivo de diseño con un vacío ListView(así que toda la configuración que hiciste previamente fue inútil ya que descartaste el primer inflado View). En su lugar, debe devolver:

return view;

Respondido el 12 de junio de 12 a las 08:06

¿Qué pasa con el diálogo de progreso, también más detalles sobre su explicación? AMH

@AMH Eso ProgressDialog como usted declaró, debería funcionar sin problemas. Tal vez haya algo mal en particular en su código, por lo que debe agregar el código completo para el fragmento donde intenta usarlo. No sé qué explicación extra darte sobre la desaparición ListView. Solo devuelve el primero inflado View y no lo que está devolviendo actualmente porque eso le dará otra vista vacía y no quiere eso. - usuario

la vista de retorno, funcionó y mostró la lista, pero el progreso no aparece, vea mi código actualizado - AMH

@Luksprog, cuando estoy haciendo ProgressDialog connectionProgressDialog = new ProgressDialog(getActivity()), en un fragmento se muestra en toda la actividad, no en un fragmento en particular. - Tushar Pandey

@TusharPandey Ese es un comportamiento de diálogo normal. Si solo desea mostrar el progreso de ese fragmento, use un en línea ProgressBar artilugio. - usuario

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.