Добавлены обработчики загрузки разделов, тем и постов форума

This commit is contained in:
Victor 2014-01-10 15:54:21 +02:00
parent 9cd5412ac0
commit 7cb664ee03

View File

@ -3,32 +3,73 @@ package com.annimon.client.fragments;
import java.util.List; import java.util.List;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.ListFragment; import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import com.annimon.client.adapters.ForumPostAdapter; import com.annimon.client.adapters.ForumPostAdapter;
import com.annimon.client.entities.ForumPost; import com.annimon.client.entities.ForumPost;
import com.annimon.client.entities.ForumSection;
import com.annimon.client.entities.ForumTopic;
import com.annimon.client.tasks.ForumPostLoader; import com.annimon.client.tasks.ForumPostLoader;
public class ForumFragment extends ListFragment { public class ForumFragment extends ListFragment {
private static final String URL = "http://annimon.com/rss/forumreader.php";
private ForumPostAdapter mAdapter;
@Override @Override
public void onActivityCreated(Bundle savedInstanceState) { public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
update(); new ForumPostLoader<ForumSection>(getActivity(), sectionListener).execute();
} }
private void update() { private final ForumPostLoader.FinishLoadingListener<ForumSection> sectionListener
new ForumPostLoader(getActivity(), new ForumPostLoader.FinishLoadingListener() { = new ForumPostLoader.FinishLoadingListener<ForumSection>() {
@Override
public void onLoadingFinished(List<ForumSection> items) {
final ArrayAdapter<ForumSection> adapter = new ArrayAdapter<ForumSection>(
getActivity(), android.R.layout.simple_list_item_1, items);
setListAdapter(adapter);
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
ForumSection section = adapter.getItem(position);
new ForumPostLoader<ForumTopic>(getActivity(), topicListener).execute(
ForumPostLoader.MODE_TOPICS, section.getId());
}
});
}
};
private final ForumPostLoader.FinishLoadingListener<ForumTopic> topicListener
= new ForumPostLoader.FinishLoadingListener<ForumTopic>() {
@Override
public void onLoadingFinished(List<ForumTopic> items) {
final ArrayAdapter<ForumTopic> adapter = new ArrayAdapter<ForumTopic>(
getActivity(), android.R.layout.simple_list_item_1, items);
setListAdapter(adapter);
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Ãðóçèì ñïèñîê ïîñòîâ âûáðàííîé òåìû
ForumTopic topic = adapter.getItem(position);
new ForumPostLoader<ForumPost>(getActivity(), postListener).execute(
ForumPostLoader.MODE_POSTS, topic.getId());
}
});
}
};
private final ForumPostLoader.FinishLoadingListener<ForumPost> postListener
= new ForumPostLoader.FinishLoadingListener<ForumPost>() {
@Override @Override
public void onLoadingFinished(List<ForumPost> items) { public void onLoadingFinished(List<ForumPost> items) {
mAdapter = new ForumPostAdapter(getActivity(), items); setListAdapter(new ForumPostAdapter(getActivity(), items));
setListAdapter(mAdapter);
}
}).execute(URL);
} }
};
} }