Ich habe ein Spinner auf meinem Fragment, die Daten auf diesem Spinner wird von JSON aus meiner Datenbank aufgefüllt. Das Problem, das ich habe, ist, dass es immer dieselben Daten auf meinem Spinner wiederholt.Android-Spinner behält den gleichen Wert bei
Beispiel:
Basketball Baseball Fußball
Immer, wenn ich Registerkarten wechseln und zurück, dies zu meinem Spinner passiert.
Basketball Baseball Fußball Basketball Baseball Fußball
Hier ist mein Code für Daten auf meinem Spinner
public class Games extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.games, container, false);
spinner1 = (Spinner) rootView.findViewById(R.id.sp1);
getSpinner();
return rootView;
}
private void getSpinner(){
try
{
URL url = new URL (Config.URL_SPIN);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
is = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuilder sb = new StringBuilder();
while((line = bufferedReader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try
{
JSONArray JA = new JSONArray(result);
JSONObject json;
e_name = new String[JA.length()];
e_gender = new String[JA.length()];
for(int i = 0; i<JA.length(); i++)
{
json = JA.getJSONObject(i);
e_gender[i] = json.getString("e_gender");
e_name[i] = json.getString("e_name");
}
list1.add("All");
list1.add("NonSports");
for(int i = 0; i<e_name.length; i++)
{
list1.add(e_name[i] + " "+e_gender[i]);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
erstellen Sie können mit Retrofit oder zumindest OkHttp in Ihrem Andro wollen betrachten ID-Projekte. Es ist viel einfacher und besser optimiert als 'HttpURLConnection' zu verwenden und json manuell zu analysieren. – Vucko