Witam to znowu Ja! :P
Wybaczcie, że kolejny temat zakładam, ale w żaden poprzedni raczej nie mógłbym tego podpiąć. Czytałem również na ten temat w google, ale niezbyt doszedłem do rozwiązania. Już piszę o co chodzi:
Z mojego Activity tworzę obiekt klasy, która dziedziczy po AsyncTask. W doInBackground() odpalam funkcję, która wysyła post do WebService i zwraca XML. Następnie przekazuje XML do onPostExecute(), a tam odpalam funkcje, która przerabia mi go na ArrayListę<obiekt> i ją zwraca. Aktualnie widok Activity zmieniam z onPostExecute, ale wolałbym żeby wyglądało to w ten sposób:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_list_view_android_example);
CustomListView = this;
/******** Take some data in Arraylist ( CustomListViewValuesArr ) ***********/
setListData();
Resources res =getResources();
lis t= ( ListView )findViewById( R.id.list ); // List defined in XML ( See Below )
/**************** Create Custom Adapter *********/
adapter=new CustomAdapter( CustomListView, CustomListViewValuesArr,res );
list.setAdapter( adapter );
}
Przejrzyście, wszystko ładnie poukładane. Problem polega na tym, że nie wiem jak zwrócić ArrayListę do Activity. A tak o to odpalam cały system, który wcześniej opisałem (GetEvents jest funkcją w Activity odpalam ją w protected void onCreate(Bundle savedInstanceState)):
public void GetEvents(){
new WebServiceClient(username, password, "GetEvents", xml, this, this).execute();
}
WebServiceClient to klasa dziedzicząca po AsyncTask. Także w tym miejscu byłby return. Gdy próbuję tu przypisać returna do zmiennej to piszę, że musi być typu AsyncTask.
Jak to zrobić ? ? ? ?
PS.
Tego typu pytania powinny znaleźć się w Newbie czy w Java?
Pozdrawiam NieZnasz !