I have do this simple app, in this app when I click on start button I want to see the data in Listview, but it does’t work. Can you help me?
mainActivity.java
public class MainActivity extends ListActivity {
public ArrayList<Map<String, String>> list= new ArrayList<Map<String, String>>();
public ListAdapter adapter;
public ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button buttonAggiorna = (Button) findViewById(R.id.buttonStart);
buttonAggiorna.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String[] from = { "name", "purpose" };
int[] to = { android.R.id.text1, android.R.id.text2 };
adapter = new SimpleAdapter(MainActivity.this, list,android.R.layout.simple_list_item_2, from, to);
progressDialog = ProgressDialog.show(MainActivity.this, "Getting data", "Loading...");
taskBack t=new taskBack();
t.execute();
}
});// fine onClickListner
Button buttonAllarm = (Button) findViewById(R.id.buttonAllarm);
buttonAllarm.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
AppLog.logString("list size:"+list.size());
}
});
}
private class taskBack
extends AsyncTask<Void, Void, ArrayList<Map<String, String>>> {
@Override
protected ArrayList<Map<String, String>> doInBackground(Void... arg0) {
ArrayList<Map<String, String>> l = new ArrayList<Map<String, String>>();
l = startEla();
return l;
}
protected void onPostExecute(ArrayList<Map<String, String>> result) {
AppLog.logString("Parte onPostExecute");
list=result;
setListAdapter(adapter);
progressDialog.dismiss();
}
private ArrayList<Map<String, String>> startEla() {
ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
list.add(putData("android","mobile"));
list.add(putData("Windows7", "Windows7"));
list.add(putData("iPhone", "iPhone"));
return list;
}
private Map<String, String> putData(String name, String purpose) {
HashMap<String, String> item = new HashMap<String, String>();
item.put("name", name);
item.put("purpose", purpose);
return item;
}
}
}
In this link you can see the xml file enter link description here
Best Regads
A.
Move these two lines to the main body of the
ListActivity…Remove the following line from the
onClick(...)listener inonCreate(...)……and put it in the
onPostExecute(...)method of theAsyncTaskas follows…