我有一个实现接口的 FragmentActivity、扩展 AsyncTask 的类、ListFragment 和扩展 ArrayAdapter 的类。我从 FragmentActivity 调用 AsyncTask,AsyncTask 从 Internet 获取数据并通过 onPostExecute 方法中的接口将此数据返回给 FragmentActivity。我还有一个 xml 文件 - ListView 的自定义项和包含片段的 xml 文件。
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) {
};
订阅.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>
我的数据包含在 FragmentActivity 的 onGetDataSubscriptions(List result) 方法中。以及如何将自定义适配器绑定到来自 FragmentActivity 的列表?