Ich versuche, Spinner Werte von URL mit Json laden.Laden Spinner von URL mit JSON
Der Code Ich verwende ist
private class DownloadJSON extends AsyncTask<Void, Void, Void>
{
protected Void doInBackground(Void... params)
{
// Locate the WorldPopulation Class
world = new ArrayList<WorldPopulation>();
// Create an array to populate the spinner
worldlist = new ArrayList<String>();
// JSON file URL address
jsonobject = JSONfunctions.getJSONfromURL("http://");
// Log.v("Load Employees",jsonobject.toString());
try
{
// Locate the NodeList name
jsonarray = jsonobject.getJSONArray("Employees");
for (int i = 0; i < jsonarray.length(); i++)
{
jsonobject = jsonarray.getJSONObject(i);
WorldPopulation worldpop = new WorldPopulation();
worldpop.setRank(jsonobject.optString("FirstName"));
worldpop.setCountry(jsonobject.optString("LastName"));
worldpop.setPopulation(jsonobject.optString("EmpNo"));
// worldpop.setFlag(jsonobject.optString("flag"));
world.add(worldpop);
// Populate spinner with country names
worldlist.add(jsonobject.optString("FirstName") + "-" +jsonobject.optString("EmpNo"));
mySpinner.setAdapter(new ArrayAdapter<String>(VisitorEntry.this,android.R.layout.simple_spinner_dropdown_item, worldlist));
}
}
catch (Exception e)
{
// Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
Dieser Code zeigt manchmal zur Folge haben und nicht angezeigt irgendwann. Ich verstehe das Problem nicht und möchte wissen, ob es andere Möglichkeiten gibt, Werte von URL in Spinner zu holen. Die Zeit, ich bin nicht mit den Werten angezeigt bekommen, erhalte ich folgende Fehler:
04-27 14:19:25.979: W/System.err(17486): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
04-27 14:19:25.979: W/System.err(17486): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4611)
04-27 14:19:25.979: W/System.err(17486): at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:867)
04-27 14:19:25.979: W/System.err(17486): at android.view.ViewGroup.invalidateChild(ViewGroup.java:4066)
04-27 14:19:25.979: W/System.err(17486): at android.view.View.invalidate(View.java:10271)
04-27 14:19:25.979: W/System.err(17486): at android.view.View.invalidate(View.java:10226)
04-27 14:19:25.979: W/System.err(17486): at android.widget.AbsSpinner.resetList(AbsSpinner.java:153)
04-27 14:19:25.979: W/System.err(17486): at android.widget.AbsSpinner.setAdapter(AbsSpinner.java:104)
04-27 14:19:25.979: W/System.err(17486): at android.widget.Spinner.setAdapter(Spinner.java:382)
04-27 14:19:25.989: W/System.err(17486): at com.example.wepvms.VisitorEntry$DownloadJSON1.doInBackground(VisitorEntry.java:854)
04-27 14:19:25.989: W/System.err(17486): at com.example.wepvms.VisitorEntry$DownloadJSON1.doInBackground(VisitorEntry.java:1)
04-27 14:19:25.989: W/System.err(17486): at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-27 14:19:25.989: W/System.err(17486): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-27 14:19:25.989: W/System.err(17486): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-27 14:19:25.989: W/System.err(17486): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
04-27 14:19:25.989: W/System.err(17486): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-27 14:19:25.989: W/System.err(17486): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-27 14:19:25.989: W/System.err(17486): at java.lang.Thread.run(Thread.java:856)
Sie können Volley Verwenden Sie für die gleiche – Haroon
JSONObject = JSONfunctions.getJSONfromURL ("http: //"); Ist es die URL-Adresse, von der Sie Daten abrufen möchten? – Haroon
Ja. Ich habe eine URL, die iam using und iam in der Lage ist, die Werte richtig zu holen. @Haroon – Mounika