У меня есть функция FragmentActivity, которая реализует интерфейс, класс, который расширяет AsyncTask, ListFragment и Class, который расширяет ArrayAdapter. Я вызываю AsyncTask из FragmentActivity, AsyncTask извлекает данные из Интернета и возвращает эти данные в FragmentActivity через интерфейс в методе onPostExecute. Также у меня есть xml-файл - настраиваемый элемент для ListView и xml-файла, который содержит фрагмент.ListFragment, ListView, AsyncTask, FragmentActivity
RssItemListActivity.java
public class RssItemListActivity extends FragmentActivity implements
RssItemListFragment.Callbacks, SubscriptionsListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
new Subscriptions(this).execute().get();
...
}
...
@Override
public void onGetDataSubscriptions(List<Group> result) {
};
Subscriptions.java
public class Subscriptions extends AsyncTask<String, Void, List<Group>> {
private SubscriptionsListener listener;
Subscriptions(SubscriptionsListener listener) {
this.listener = listener;
}
@Override
protected List<Group> doInBackground(String... arg0) {
return CallService(arg0[0]);
}
@Override
protected void onPostExecute(List<Group> result) {
listener.onGetDataSubscriptions(result);
}
private List<Group> CallService(String token) {
...
return entries;
}
}
SubscriptionsListener.java
public interface SubscriptionsListener {
void onGetDataSubscriptions(List<Group> result);
}
activity_rssitem_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:orientation="vertical" >
<fragment
android:id="@+id/rssitem_list"
android:name="ru.develop.yaggregator.RssItemListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
tools:layout="@android:layout/list_content" >
</fragment>
</LinearLayout>
rss_item_subscription.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rssitem_subscription"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:textAppearance="?android:attr/textAppearance"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearance"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
Мои данные содержатся в методе onGetDataSubscriptions (результат) Список в FragmentActivity. А как связать пользовательский адаптер с списком из FragmentActivity?
ну какая ошибка вы получаете. –
ошибок нет, но это не хорошо для производительности, может быть –
Я не уверен, что вы имеете в виду, это не хорошо для производительности. слишком часто вызывается onGetDataSubscriptions? Или вы обеспокоены добавлением групп 1 за раз. Я считаю, что в вашем адаптере должна быть функция addAll (Collection), которая может быть более эффективной, чем добавление их по одному за раз. –