I am using an ListAdapter to populate a ListView like this:
static final String[] PROBLEMS = new String[] {"one", "two", "three" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.my_problems, PROBLEMS));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
and after that I am making a remote call to my server to get more data for that list with an AsyncTask call, and when I get the data back from the server I don't know how to populate and reset the ListView. So far I have something like this:
@Override
protected void onPostExecute(String result)
{
// Unwrap the stuff from the JSON string
String problem_title = null;
String problem_id = null;
try
{
JSONArray obj = new JSONArray(result);
JSONObject o = obj.getJSONObject(0);
Log.d( "Title: " , "" + o.getString("problem_title") );
Log.d( "id: " , "" + o.getString("problem_id") );
problem_title = o.getString("problem_title");
problem_id = o.getString("problem_id");
}
catch ( Exception e )
{
}
// Now not sure what to do :)
// How do I reset the list that I had set up above?
}
I can make the result into appropriately structured data to reset the list but not sure how that is done. Can someone please help? :)
I use it this way,
values = new ArrayList<String>();
//put anything you want in values as start
adapter = new ArrayAdapter<String>(this,R.layout.notification, values);
setListAdapter(adapter);
then
//change values array with your new data then update the adapter
adapter.notifyDataSetChanged();
then the listview content will change at the time you execute this function