public class ItemFragment extends Fragment implements
OnRefreshListener2<ListView> {
private PullToRefreshListView pulllv;
private LinkedList<Data> list;
@SuppressLint("HandlerLeak")
Handler han = new Handler() {
private ListDataAdapter lidt;
@SuppressWarnings("unchecked")
@Override
public void handleMessage(Message msg) {
int code = msg.what;
if (code == 1) {
// 第一次进入
list = (LinkedList<Data>) msg.obj;
lidt = new ListDataAdapter(getActivity(), list);
pulllv.setAdapter(lidt);
// 关闭
pulllv.onRefreshComplete();
}
if (code == 2) {
// 刷新
for (Data i : (LinkedList<Data>) msg.obj) {
list.addFirst(i);
}
lidt.notifyDataSetChanged();
pulllv.onRefreshComplete();
}
if (code == 3) {
// 刷新
for (Data i : (LinkedList<Data>) msg.obj) {
list.addLast(i);
}
lidt.notifyDataSetChanged();
pulllv.onRefreshComplete();
}
}
};
private String url;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View contextView = inflater.inflate(R.layout.fragment_item, container,
false);
pulllv = (PullToRefreshListView) contextView
.findViewById(R.id.pull_refresh_list);
// 设置支持上拉加载和下拉刷新
pulllv.setMode(Mode.BOTH);
// 获取Activity传递过来的参数
Bundle mBundle = getArguments();
url = mBundle.getString("str");
new Thread() {
@Override
public void run() {
// 设置初期数据
String select = select(url);
if (select != null) {
jiexi(select, 1);
}
}
}.start();
// 点击查看详情
pulllv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent(getActivity(), DetailsActivity.class);
intent.putExtra("url", list.get(position - 1).getArticle_url());
startActivity(intent);
}
});
pulllv.setOnRefreshListener(this);
return contextView;
}
// 解析数据
public void jiexi(String string, int i) {// I为标记
Gson gson = new Gson();
Root fromJson = gson.fromJson(string, Root.class);
LinkedList<Data> lists = fromJson.getData();
Message message = Message.obtain();
message.obj = lists;
message.what = i;
han.sendMessage(message);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
// 加载页面
public String select(String i) {
try {
URL url = new URL(i);
HttpURLConnection openConnection = (HttpURLConnection) url
.openConnection();
openConnection.setConnectTimeout(5000);
openConnection.setRequestMethod("GET");
openConnection.setReadTimeout(5000);
openConnection.connect();
int code = openConnection.getResponseCode();
if (code == 200) {
InputStream inputStream = openConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String str;
while ((str = br.readLine()) != null) {
sb.append(str);
}
return sb.toString();
} else {
System.out.println("联网失败");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
list.clear();
new Thread() {
@Override
public void run() {
String select2 = select(url);
jiexi(select2, 2);
}
}.start();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
new Thread() {
@Override
public void run() {
String select3 = select(url);
jiexi(select3, 3);
}
}.start();
}
}
OnRefreshListener2<ListView> {
private PullToRefreshListView pulllv;
private LinkedList<Data> list;
@SuppressLint("HandlerLeak")
Handler han = new Handler() {
private ListDataAdapter lidt;
@SuppressWarnings("unchecked")
@Override
public void handleMessage(Message msg) {
int code = msg.what;
if (code == 1) {
// 第一次进入
list = (LinkedList<Data>) msg.obj;
lidt = new ListDataAdapter(getActivity(), list);
pulllv.setAdapter(lidt);
// 关闭
pulllv.onRefreshComplete();
}
if (code == 2) {
// 刷新
for (Data i : (LinkedList<Data>) msg.obj) {
list.addFirst(i);
}
lidt.notifyDataSetChanged();
pulllv.onRefreshComplete();
}
if (code == 3) {
// 刷新
for (Data i : (LinkedList<Data>) msg.obj) {
list.addLast(i);
}
lidt.notifyDataSetChanged();
pulllv.onRefreshComplete();
}
}
};
private String url;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View contextView = inflater.inflate(R.layout.fragment_item, container,
false);
pulllv = (PullToRefreshListView) contextView
.findViewById(R.id.pull_refresh_list);
// 设置支持上拉加载和下拉刷新
pulllv.setMode(Mode.BOTH);
// 获取Activity传递过来的参数
Bundle mBundle = getArguments();
url = mBundle.getString("str");
new Thread() {
@Override
public void run() {
// 设置初期数据
String select = select(url);
if (select != null) {
jiexi(select, 1);
}
}
}.start();
// 点击查看详情
pulllv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent(getActivity(), DetailsActivity.class);
intent.putExtra("url", list.get(position - 1).getArticle_url());
startActivity(intent);
}
});
pulllv.setOnRefreshListener(this);
return contextView;
}
// 解析数据
public void jiexi(String string, int i) {// I为标记
Gson gson = new Gson();
Root fromJson = gson.fromJson(string, Root.class);
LinkedList<Data> lists = fromJson.getData();
Message message = Message.obtain();
message.obj = lists;
message.what = i;
han.sendMessage(message);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
// 加载页面
public String select(String i) {
try {
URL url = new URL(i);
HttpURLConnection openConnection = (HttpURLConnection) url
.openConnection();
openConnection.setConnectTimeout(5000);
openConnection.setRequestMethod("GET");
openConnection.setReadTimeout(5000);
openConnection.connect();
int code = openConnection.getResponseCode();
if (code == 200) {
InputStream inputStream = openConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(isr);
StringBuffer sb = new StringBuffer();
String str;
while ((str = br.readLine()) != null) {
sb.append(str);
}
return sb.toString();
} else {
System.out.println("联网失败");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
list.clear();
new Thread() {
@Override
public void run() {
String select2 = select(url);
jiexi(select2, 2);
}
}.start();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
new Thread() {
@Override
public void run() {
String select3 = select(url);
jiexi(select3, 3);
}
}.start();
}
}