I am trying to retrieve data from mysql and load into listview.But the app crashes when I try to run it.I am not able to solve the errors.The JSON response is working fine and the results are displayed in the browser.Please help.This is the MainActivity file
package com.example.triallistview;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends ListActivity {
int ct_id;
String[] ct_name = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String result = null;
InputStream is = null;
StringBuilder sb = null;
ListView lv;
lv = (ListView)findViewById(R.id.list);
// http post
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://127.0.0.1/example/city.php");
// httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection" + e.toString());
}
// convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
// paring data
JSONArray jArray;
try {
jArray = new JSONArray(result);
JSONObject json_data = null;
ct_name = new String[jArray.length()];
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
ct_id = json_data.getInt("CITY_ID");
ct_name[i] = json_data.getString("CITY_NAME");
}
} catch (JSONException e1) {
Toast.makeText(getBaseContext(), "No City Found", Toast.LENGTH_LONG)
.show();
} catch (ParseException e1) {
e1.printStackTrace();
}
lv = getListView();
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, ct_name));
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
ct_name[position] + " wasClicked", Toast.LENGTH_SHORT)
.show();
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
}
});
}
}
The logcat looks like this
03-25 02:42:03.195: E/AndroidRuntime(2380): FATAL EXCEPTION: main
03-25 02:42:03.195: E/AndroidRuntime(2380): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.triallistview/com.example.triallistview.MainActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.os.Looper.loop(Looper.java:137)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ActivityThread.main(ActivityThread.java:5103)
03-25 02:42:03.195: E/AndroidRuntime(2380): at java.lang.reflect.Method.invokeNative(Native Method)
03-25 02:42:03.195: E/AndroidRuntime(2380): at java.lang.reflect.Method.invoke(Method.java:525)
03-25 02:42:03.195: E/AndroidRuntime(2380): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
03-25 02:42:03.195: E/AndroidRuntime(2380): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-25 02:42:03.195: E/AndroidRuntime(2380): at dalvik.system.NativeStart.main(Native Method)
03-25 02:42:03.195: E/AndroidRuntime(2380): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ListActivity.onContentChanged(ListActivity.java:243)
03-25 02:42:03.195: E/AndroidRuntime(2380): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.Activity.setContentView(Activity.java:1895)
03-25 02:42:03.195: E/AndroidRuntime(2380): at com.example.triallistview.MainActivity.onCreate(MainActivity.java:34)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.Activity.performCreate(Activity.java:5133)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-25 02:42:03.195: E/AndroidRuntime(2380): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
03-25 02:42:03.195: E/AndroidRuntime(2380): ... 11 more
Please suggest me what changes should I do.