私はradiusオプション付きのDialogFragmentsを開発中です。このオプションはリモートデータベースからロードされ、私のリストに保存したいplayers
私はVolleyを使ってリモートデータベースに接続し、プレーヤーをロードしています。Android - Volleyでリストを更新
私の問題は、リストプレーヤーが更新されないということです。です。メソッドAccion.attendancesPlayerToGame
は完全に機能しますが、ラインの後に
final CharSequence[] items = new CharSequence[players.size()]
の場合、players.size
は常にゼロに等しくなります。 メソッド内にブレークポイントを置くときAcciones.attendancesPlayerToGame、リストが変更されている場合。何が問題なの?ご協力いただきありがとうございます。
DialogFragment
public AlertDialog createRadioListDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
String gameID= getArguments().getString("gameID");
List<JugadorView> players=new ArrayList<JugadorView>();
Acciones.attendancesPlayerToGame(gameID, getContext(),players);
final CharSequence[] items = new CharSequence[players.size()];
for(int i = 0; i< players.size();i ++){
String nombre= players.get(i).nombre;
String apellidos = players.get(i).apellidos;
String nombreComplet = nombre + " " + apellidos;
items[i] = nombreComplet;
}
more code
}
attendancesPlayerToGame
public static void attendancesPlayerToGame(final String idGame,final Context context, final List<JugadorView> jugadorViewList) {
final String URLLISTGROUP = "http://www.myweb.com/app/file.php";
final StringRequest stringRequest = new StringRequest(Request.Method.POST, URLLISTGROUP,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String emailJugador = jsonObject.getString("emailJugador");
String nombreJugador = jsonObject.getString("nombreJugador");
String apellidosJugador = jsonObject.getString("apellidosJugador");
String jugadorId = jsonObject.getStri
ng("jugadorID");
JugadorView jugadorView = new JugadorView(nombreJugador, apellidosJugador, emailJugador, jugadorId);
jugadorViewList.add(jugadorView);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context, error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("idGame", idGame);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
}
ありがとうございました!私はあなたの答えを試みたが、うまくいかなかった。あなたの答えを試しましたが、うまくいきません。実際にアダプタは必要ありません。リスト ' player'は、メソッド' Accion.attendancesPlayerToGame'を呼び出した後に更新されます。 –
arisolarpower
もしあなたがリストを持っているなら、それはアダプタを持っている必要があります、それはどのようにアンドロイドが動作するのですか...あなたはアダプタを持っていない場合、あなたはこの方法を試すことができます。 jugadorViewList.getAdapter()。notifyDataSetChanged(); – Catluc