Добавлены обработчики загрузки разделов, тем и постов форума
This commit is contained in:
parent
9cd5412ac0
commit
7cb664ee03
@ -3,32 +3,73 @@ package com.annimon.client.fragments;
|
||||
import java.util.List;
|
||||
import android.os.Bundle;
|
||||
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.entities.ForumPost;
|
||||
import com.annimon.client.entities.ForumSection;
|
||||
import com.annimon.client.entities.ForumTopic;
|
||||
import com.annimon.client.tasks.ForumPostLoader;
|
||||
|
||||
public class ForumFragment extends ListFragment {
|
||||
|
||||
private static final String URL = "http://annimon.com/rss/forumreader.php";
|
||||
|
||||
private ForumPostAdapter mAdapter;
|
||||
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
update();
|
||||
new ForumPostLoader<ForumSection>(getActivity(), sectionListener).execute();
|
||||
}
|
||||
|
||||
private void update() {
|
||||
new ForumPostLoader(getActivity(), new ForumPostLoader.FinishLoadingListener() {
|
||||
|
||||
@Override
|
||||
public void onLoadingFinished(List<ForumPost> items) {
|
||||
mAdapter = new ForumPostAdapter(getActivity(), items);
|
||||
setListAdapter(mAdapter);
|
||||
}
|
||||
}).execute(URL);
|
||||
}
|
||||
private final ForumPostLoader.FinishLoadingListener<ForumSection> sectionListener
|
||||
= 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
|
||||
public void onLoadingFinished(List<ForumPost> items) {
|
||||
setListAdapter(new ForumPostAdapter(getActivity(), items));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user