Here is my class where I try to get into a JSONArray some data from MYSQL using JSON.
It apperars on the screen two Toasts: NullPointerEception and another Exception where it writes everything I have in php webpage , word by word.
public class ConnectMySql extends Activity{
InputStream is;
//List<String> items;
JSONArray jArray;
//String[] items;
StringBuilder sb;
//ListView list;
TextView textv;
String result;
//List<NameValuePair> items;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//list = (ListView) findViewById(R.id.listview);
textv = (TextView) findViewById(R.id.tvHI);
setContentView(R.layout.main);
try{
HttpClient httpsClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://79.114.48.119/data.php");
List<NameValuePair> nameValue = new ArrayList<NameValuePair>();
httpPost.setEntity(new UrlEncodedFormEntity(nameValue));
HttpResponse httpResponse = httpsClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in HTTP connection" + e.toString());
Toast.makeText(this, "http connection error: " + e.toString(), Toast.LENGTH_LONG).show();
}
try{
BufferedReader BufR = new BufferedReader (new InputStreamReader(is, "iso-8859-1"),8);
sb = new StringBuilder();
sb.append(BufR.readLine() + "\n");
String line = "0";
while((line = BufR.readLine()) != null){
sb.append(line + "\n");
}
is.close();
result = sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error in convert String" + e.toString());
}
int lat;
int lon;
try{
jArray = new JSONArray(result);
Toast.makeText(this, "no data found" + result, Toast.LENGTH_LONG).show();
JSONObject json_data = null;
for(int i = 0; i< jArray.length(); i++){
json_data = jArray.getJSONObject(i);
lat = json_data.getInt("latitude");
lon = json_data.getInt("longitude");
textv.setText(lat + lon);
//Here i use another function whitch uses lat & lon
}
//setupList();
}catch(JSONException e){
Toast.makeText(this, "no data found", Toast.LENGTH_LONG).show();
}catch(Exception e){
Toast.makeText(this, "error" + e.toString(), Toast.LENGTH_LONG).show();
}
}
}
/*private void setupList() {
// TODO Auto-generated method stub
list.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items));
}
}*/
Could you help me ? Thank you very much !
several mistakes in your code:
1) setContentView() must be call before findViewById(), or any other method that uses xml layout references.
2) you are trying to perform network operation on the UI thread (http request must be executed from another thread – otherwise – it thrown exception)
don’t forget to add to the manifest internet permission if you forgot or didn’t knew you need