ListFragment、ListView、AsyncTask、FragmentActivity

ListFragment、ListView、AsyncTask、FragmentActivity,listview,interface,android-asynctask,android-arrayadapter,android-listfragment,Listview,Interface,Android Asynctask,Android Arrayadapter,Android Listfragment,我有一个FragmentActivity,它实现了接口、扩展AsyncTask的类、ListFragment和扩展ArrayAdapter的类。 我从FragmentActivity调用AsyncTask,AsyncTask从internet获取数据,并通过onPostExecute方法中的接口将该数据返回给FragmentActivity。 我还有一个xml文件——ListView的自定义项和包含片段的xml文件 rssitemlistativity.java public class Rs

我有一个FragmentActivity,它实现了接口、扩展AsyncTask的类、ListFragment和扩展ArrayAdapter的类。 我从FragmentActivity调用AsyncTask,AsyncTask从internet获取数据,并通过onPostExecute方法中的接口将该数据返回给FragmentActivity。 我还有一个xml文件——ListView的自定义项和包含片段的xml文件

rssitemlistativity.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) {


};
公共类rssitemlistativity扩展了FragmentActivity实现
RssItemListFragment.Callbacks,SubscriptionsListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
新订阅(this.execute().get();
...
}
...
@凌驾
公共无效onGetDataSubscriptions(列表结果){
};
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;
}
    }
公共类订阅扩展了异步任务{
私有订阅侦听器;
订阅(订阅侦听器侦听器){
this.listener=listener;
}
@凌驾
受保护列表doInBackground(字符串…arg0){
返回CallService(arg0[0]);
}
@凌驾
受保护的void onPostExecute(列表结果){
onGetDataSubscriptions(结果);
}
私有列表调用服务(字符串令牌){
...
返回条目;
}
}
SubscriptionsListener.java

    public interface SubscriptionsListener {

void onGetDataSubscriptions(List<Group> result);
    }
公共接口订阅侦听器{
作废onGetDataSubscriptions(列表结果);
}
活动\u rssitem\u 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方法(列表结果)中。
以及如何从FragmentActivity将自定义适配器绑定到列表?

您的问题有很多,但如果您要问的是如何将适配器绑定到ListFragment,那么您所要做的就是调用

this.setListAdapter(adapter);
在ListFragment中。在onCreate方法中创建并绑定适配器。

谢谢,但事实并非如此。 我在类和方法onGetDataSubscriptions中添加了列表项:

    @Override
public void onGetDataSubscriptions(List<Group> result) {
        for (Group group : result) {
            ItemContent.ITEMS.add(group);
        }
 };
@覆盖
公共无效onGetDataSubscriptions(列表结果){
对于(组:结果){
ItemContent.ITEMS.add(组);
}
};
在ListFragment中,我可以使用这个集合。
可能不好…

我不确定您所说的对性能不好是什么意思。OnGetDataSubscripts是否被调用得太频繁?或者您是否担心一次添加一个组。我相信适配器中应该有一个addAll(Collection)函数,这可能比一次添加一个组更有效。