2017-10-18 8 views
0

私は助けが必要です。私は2つのフラグメントを持つアクティビティを持っていますが、最初のものはうまくいきますが、リストビューを持つ2番目のフラグメントは、フラグメントを開始するときにアイテムを表示せず、crearComentarioボタンをクリックして、私がこれを行うのは、リストビューがアイテムをロードするときだけです。これは私のクラスです、もしあなたが見れば、私はStringRequestとResponseListenerから得られたデータでリストビューを塗りつぶしてもうまくいきますが、最初のフラグメントから最初のフラグメントに変更するときにアイテムを表示したいときだけです。 2番目のフラグメント(ここでは、私はlistViewを持っています)。誰かが私はあなたがmapFillに項目を追加した後ListViewためadapter.notifyDataSetChanged();を呼び出す必要がフラグメントが呼び出されたときにリストビューが必要です

public class NegocioCommentFragment extends Fragment { 
private ListView listView; 
private FloatingActionButton crearComentario; 
private String neg_Nombre; 
final List<HashMap<String, String>> mapFill = new ArrayList<HashMap<String, String>>(); 
private String neg_id; 


public NegocioCommentFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    return inflater.inflate(R.layout.fragment_negocio_comments, container, false); 


} 


public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 


    crearComentario = (FloatingActionButton) view.findViewById(R.id.agregarComentario); 
    listView = (ListView) view.findViewById(R.id.commentsList); 

    SharedPreferences sharedPreferences = getActivity().getSharedPreferences("userData", MODE_PRIVATE); 
    final String usrapp_id = sharedPreferences.getString("usrapp_id", null); 


    //Accedemos a los extras para ectraer nombre e id del negocio 
    Intent negocioInfo = getActivity().getIntent(); 
    final Bundle paqueteInfo = negocioInfo.getExtras(); 
    neg_Nombre = paqueteInfo.getString("neg_Nombre"); 
    neg_id = paqueteInfo.getString("neg_id"); 


    crearComentario.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent enviarComentarioActivity = new Intent(getContext(), EnviarComentario.class); 
      enviarComentarioActivity.putExtra("neg_Nombre", neg_Nombre); 
      enviarComentarioActivity.putExtra("usrapp_id", usrapp_id); 
      enviarComentarioActivity.putExtra("neg_id", neg_id); 
      startActivity(enviarComentarioActivity); 


     } 
    }); 

    //Creamos arreglos para el adaptador de los comentarios 
    String[] negInfo = new String[]{"nombre", "nc_comentario",}; 
    int[] views = new int[]{R.id.userNameCommentTextView, R.id.userCommentTextView}; 

    //LLenamos los componentes de la lista de comentarios con los arreglos en donde se guardaron 
    SimpleAdapter adapter = new SimpleAdapter(getContext(), mapFill, R.layout.diseno_negocio_comments, negInfo, views); 
    listView.setAdapter(adapter); 

    //Traemos todos los comentarios del que se han hecho últimamente al negocio 
    Response.Listener<String> responseListener = new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      try { 
       JSONArray comentariosArray = new JSONArray(response); 

       for (int i = 0; i < comentariosArray.length(); i++) { 

        JSONObject comentarioJson = comentariosArray.getJSONObject(i); 

        String nombre = comentarioJson.getString("nombre"); 
        String comentario = comentarioJson.getString("nc_comentario"); 
        String fechaComentario = comentarioJson.getString("nc_fecha"); 
        String calificacion = comentarioJson.getString("calificacion"); 

        HashMap<String, String> commentsInfo = new HashMap<String, String>(); 

        commentsInfo.put("nombre", nombre); 
        commentsInfo.put("nc_comentario", comentario); 
        commentsInfo.put("fechaComentario", fechaComentario); 
        commentsInfo.put("calificacion", calificacion); 
        mapFill.add(commentsInfo); 

       } 


      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

     } 
    }; 
    TraeComentariosRequest traeComentariosRequest = new TraeComentariosRequest(neg_id, responseListener); 
    RequestQueue queue = Volley.newRequestQueue(getActivity()); 
    queue.add(traeComentariosRequest); 




} 

@Override 
public void onStart() { 
    super.onStart(); 

} 

}

答えて

1

bのフラグメントに断片化する移動したときに、リストビューを表示する方法を知ってください。

+0

call adapter.notifyDataSetChanged();ここに ? SimpleAdapterアダプタ=新しいSimpleAdapter(getContext()、mapFill、R.layout.diseno_negocio_comments、negInfo、views); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); – Andressualu

+0

@Andressualu yeapあなたはそれが必要です! – kimkevin

関連する問題