I am new to android and java.Recently I am having problem with displaying fetched json data into listview using baseadapter. At first I have used this code
@Allen Chun , actually its not in my mind currently that what I have changed in my code to run my code perfectly. But I am sharing all my codes which are working perfectly.
Its my layout code,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/fsr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Notice Board"
android:textSize="20px" />
<TextView
android:id="@+id/err_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:gravity="center" />
<ListView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/list_notice2"
android:layout_gravity="center" />
</LinearLayout>
This is my custom listview layout codes,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:paddingTop="10dp"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium" />
/>
<TextView
android:id="@+id/notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Small Text"
android:paddingTop="5dp"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
its my activity named "NoticeBoard" .
public class NoticeBoard extends Activity {
ArrayList<String> title_array = new ArrayList<String>();
ArrayList<String> notice_array = new ArrayList<String>();
ListView list;
base_adapter3 adapter;
TextView f,msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_notice);
list = (ListView) findViewById(R.id.list_notice2);
msg=(TextView) findViewById(R.id.err_msg);
new test_ays().execute();
}
class test_ays extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
String str = null ;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/BSDI/show.php");
HttpResponse response = httpclient.execute(httppost);
str = EntityUtils.toString(response.getEntity());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(result!=null) // add this
{
String response = result.toString();
try {
JSONArray new_array = new JSONArray(response);
for (int i = 0, count = new_array.length(); i < count; i++) {
try {
JSONObject jsonObject = new_array.getJSONObject(i);
title_array.add(jsonObject.getString("title").toString());
notice_array.add(jsonObject.getString("notice").toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
adapter = new base_adapter3(NoticeBoard.this, title_array, notice_array);
list.setAdapter(adapter);
// f=(TextView) findViewById(R.id.textTuh);
// f.setText(title_array);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// tv.setText("error2");
}
}
else{
msg.setText("You need a working data connection...");
}
}
}
}
And its my custom baseadapter codes,
public class base_adapter2 extends BaseAdapter {
private Activity activity;
//private ArrayList<HashMap<String, String>> data;
private static ArrayList title,notice;
private static LayoutInflater inflater = null;
public base_adapter2(Activity a, ArrayList b) {
activity = a;
this.title = b;
// this.notice=bod;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return title.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.bsdi_adapter, null);
TextView title2 = (TextView) vi.findViewById(R.id.txt1); // title
String song = title.get(position).toString();
title2.setText(song);
return vi;
}
}