0

인터페이스를 구현하는 FragmentActivity, AsyncTask를 확장하는 Class, ListFragment 및 ArrayAdapter를 확장하는 클래스가 있습니다. FragmentActivity에서 AsyncTask를 호출하고, AsyncTask는 인터넷에서 데이터를 가져오고이 데이터를 onPostExecute 메서드의 인터페이스를 통해 FragmentActivity에 반환합니다. 또한 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> 
,617,

rss_item_subscription.xml 내 데이터가 FragmentActivity의 방법 onGetDataSubscriptions (목록의 결과)에 포함

<?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에서 목록에 사용자 지정 어댑터를 바인딩하는 방법?

답변

0

당신은 많은 질문에 어떤 일이 일어나고있다, 그러나 당신이 요구하는 모든하는 ListFragment에 어댑터를 바인딩하는 방법의 경우, 당신이해야 할 ListFragment에 전화

this.setListAdapter(adapter); 

이다. onCreate 메소드로 어댑터를 작성하고 바인드하십시오.

0

감사하지만, 그렇지 않습니다. 나는 수업 시간에 목록 항목을 추가 및 방법의 onGetDataSubscriptions에서 :

@Override 
public void onGetDataSubscriptions(List<Group> result) { 
     for (Group group : result) { 
      ItemContent.ITEMS.add(group); 
     } 
}; 

을 그리고 ListFragment에 나는이 컬렉션을 사용할 수 있습니다. 어쩌면 좋지 않다 ...

+0

잘 받고있는 오류가 무엇입니까. –

+0

오류는 없지만 성능에는 좋지 않습니다. 아마도 –

+0

성능에 좋지 않다는 것이 확실하지 않습니다. onGetDataSubscriptions가 너무 자주 호출되고 있습니까? 또는 그룹을 한 번에 하나씩 추가하는 것에 대해 우려하십니까? addAll (Collection) 함수가 어댑터에 있어야한다고 생각하는데, 이는 한 번에 1 개씩 추가하는 것보다 더 효율적일 수 있습니다. –

관련 문제