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();
}
}
call adapter.notifyDataSetChanged();ここに ? SimpleAdapterアダプタ=新しいSimpleAdapter(getContext()、mapFill、R.layout.diseno_negocio_comments、negInfo、views); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); – Andressualu
@Andressualu yeapあなたはそれが必要です! – kimkevin