java - Android fetch data from mySql -
i have data mysql database on server. have following code.but app crashes when run it. permission denied (missing internet permission?) in logcat though specified internet permission in android manifest. idea might wrong here?
java file
import android.app.activity; import android.os.bundle; import android.os.strictmode; import android.util.log; import android.widget.arrayadapter; import android.widget.listview; import android.widget.textview; import org.apache.http.httpentity; import org.apache.http.httpresponse; import org.apache.http.client.clientprotocolexception; import org.apache.http.client.methods.httpget; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.util.entityutils; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.io.ioexception; import java.util.arraylist; import java.util.list; public class mainactivity extends activity { textview text; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); strictmode.threadpolicy policy = new strictmode.threadpolicy.builder().permitall().build(); strictmode.setthreadpolicy(policy); connect(); } private void connect() { string data; list<string> r = new arraylist<string>(); arrayadapter<string>adapter=new arrayadapter<string>(getapplicationcontext(), android.r.layout.simple_list_item_1,r); listview list=(listview)findviewbyid(r.id.listview1); try { defaulthttpclient client = new defaulthttpclient(); httpget request = new httpget("http://xxxxx/data.php"); httpresponse response = client.execute(request); httpentity entity=response.getentity(); data=entityutils.tostring(entity); log.e("string", data); try { jsonarray json=new jsonarray(data); for(int i=0;i<json.length(); i++) { jsonobject obj=json.getjsonobject(i); string name=obj.getstring("name"); string desc=obj.getstring("description"); // string lat=obj.getstring("lat"); log.e("string", name); r.add(name); r.add(desc); // r.add(lat); list.setadapter(adapter); } } catch (jsonexception e) { // todo auto-generated catch block e.printstacktrace(); } } catch (clientprotocolexception e) { log.d("httpclient", e.getlocalizedmessage()); } catch (ioexception e) { log.d("httpclient", e.getlocalizedmessage()); } } }
androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.diana.menu" > <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <uses-permission android:name="android.permission.internet"/> <activity android:name=".mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> data.php
<?php $conn=mysql_connect('localhost', 'xxxx', 'xxxxx','u199776286_pois'); if(!$conn ) { die('could not connect: ' . mysql_error()); } $sql = 'select name, description pois'; mysql_select_db('u199776286_pois'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('could not data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, mysql_assoc)) { echo "name : {$row['name']} <br> ". "description : {$row['description']} <br> ". "--------------------------------<br>"; } echo "fetched data successfully\n"; mysql_close($conn); ?> my logcat 
this happens because you're connecting mysql server main ui thread. create secondary thread (or async task) connect , results.
Comments
Post a Comment