Note that there are some explanatory texts on larger screens.

plurals
  1. PORetrieving Data from PHP MySQL to Android List View
    primarykey
    data
    text
    <p>I'm able to retrieve a data from my php mysql to my android but it seems their is a problem with my code when I'm trying to put it to my List View.</p> <p>Here's my Activity Codes</p> <pre><code>public class View extends Activity{ // Progress Dialog // Creating JSON Parser object JSONParser jParser = new JSONParser(); ArrayList&lt;HashMap&lt;String, String&gt;&gt; productsList; // url to get all products list private static String url_all_products = "http://atlantis-us.com/viewFile.php"; // JSON Node names private static final String TAG_NAME = "name"; ListView lv; // products JSONArray JSONArray products = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.all_products); // Get listview lv = (ListView) findViewById(R.id.list); // Hashmap for ListView productsList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); new LoadAllProducts().execute(); } class LoadAllProducts extends AsyncTask&lt;String, String, String&gt; { @Override protected String doInBackground(String... arg0) { // TODO Auto-generated method stub // Building Parameters List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;(); JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params); Log.d("All Products: ", json.toString()); ListAdapter adapter = new SimpleAdapter( View.this, productsList, R.layout.list_item, new String[] { TAG_NAME}, new int[] {R.id.name }); // updating listview lv.setAdapter(adapter); return null; } } } </code></pre> <p>and Here's my JSONParser Class</p> <pre><code>public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } // function get json from url // by making HTTP POST or GET method public JSONObject makeHttpRequest(String url, String method, List&lt;NameValuePair&gt; params) { // Making HTTP request try { // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }else if(method == "GET"){ // request method is GET DefaultHttpClient httpClient = new DefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?" + paramString; HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // return JSON String return jObj; } } </code></pre> <p>this is what log cat says</p> <pre><code>10-26 14:57:53.673: I/Choreographer(1391): Skipped 61 frames! The application may be doing too much work on its main thread. 10-26 14:57:54.653: D/All Products:(1391): {"products":[{"name":"Ghalia"},{"name":"yuan"},{"name":"kevin"},{"name":"kevin"},{"name":"kevin"},{"name":"Ghalia"},{"name":"Ghalia"},{"name":"dbgg"},{"name":"Ghalia"},{"name":"Ghalia"},{"name":"test"}]} 10-26 14:57:54.663: W/dalvikvm(1391): threadid=11: thread exiting with uncaught exception (group=0x40a13300) 10-26 14:57:54.684: E/AndroidRuntime(1391): FATAL EXCEPTION: AsyncTask #1 10-26 14:57:54.684: E/AndroidRuntime(1391): java.lang.RuntimeException: An error occured while executing doInBackground() 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.os.AsyncTask$3.done(AsyncTask.java:299) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.lang.Thread.run(Thread.java:856) 10-26 14:57:54.684: E/AndroidRuntime(1391): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4607) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:835) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.View.requestLayout(View.java:15129) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.View.requestLayout(View.java:15129) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.View.requestLayout(View.java:15129) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.View.requestLayout(View.java:15129) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.view.View.requestLayout(View.java:15129) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.widget.AbsListView.requestLayout(AbsListView.java:1928) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.widget.ListView.setAdapter(ListView.java:488) 10-26 14:57:54.684: E/AndroidRuntime(1391): at com.example.mysql.View$LoadAllProducts.doInBackground(View.java:74) 10-26 14:57:54.684: E/AndroidRuntime(1391): at com.example.mysql.View$LoadAllProducts.doInBackground(View.java:1) 10-26 14:57:54.684: E/AndroidRuntime(1391): at android.os.AsyncTask$2.call(AsyncTask.java:287) 10-26 14:57:54.684: E/AndroidRuntime(1391): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 10-26 14:57:54.684: E/AndroidRuntime(1391): ... 5 more </code></pre> <p>is there anyone have thoughts whats causing the error? any suggestion will be appreciated. thank you.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload