인터페이스를 구현하는 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에서 목록에 사용자 지정 어댑터를 바인딩하는 방법?
잘 받고있는 오류가 무엇입니까. –
오류는 없지만 성능에는 좋지 않습니다. 아마도 –
성능에 좋지 않다는 것이 확실하지 않습니다. onGetDataSubscriptions가 너무 자주 호출되고 있습니까? 또는 그룹을 한 번에 하나씩 추가하는 것에 대해 우려하십니까? addAll (Collection) 함수가 어댑터에 있어야한다고 생각하는데, 이는 한 번에 1 개씩 추가하는 것보다 더 효율적일 수 있습니다. –