package com.ywwxhz.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.ywwxhz.adapters.CommentListAdapter;
import com.ywwxhz.data.impl.NewsCommentProvider;
import com.ywwxhz.entitys.CommentItem;
import com.ywwxhz.processers.NewsCommentProcesser;
/**
* cnBetaReader
* <p/>
* Created by 远望の无限(ywwxhz) on 2015/4/27 15:31.
*/
public class NewsCommentFragment extends BaseListFragment<CommentItem,CommentListAdapter,NewsCommentProvider,NewsCommentProcesser> {
public static final String SN_KEY = "key_sn";
public static final String SID_KEY = "key_sid";
private int sid;
private String sn;
private boolean hasinit;
public static NewsCommentFragment getInstance(int sid,String sn){
Bundle args = new Bundle();
args.putInt(SID_KEY,sid);
args.putString(SN_KEY,sn);
NewsCommentFragment f = new NewsCommentFragment();
f.setArguments(args);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if(args!=null&&args.containsKey(SID_KEY)&&args.containsKey(SN_KEY)){
sid = args.getInt(SID_KEY);
sn = args.getString(SN_KEY);
}
setHasOptionsMenu(true);
}
@Override
protected NewsCommentProvider getProvider() {
return new NewsCommentProvider(getActivity());
}
@Override
protected NewsCommentProcesser createProcesser(NewsCommentProvider provider) {
return new NewsCommentProcesser(provider);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
hasinit = false;
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
if(getUserVisibleHint()&&!hasinit){
loadData(true);
}
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser&&!hasinit){
loadData(false);
}
}
private void loadData(boolean startup){
processer.setParams(sid,sn);
processer.loadData(startup);
hasinit = true;
}
@Override
public boolean hasMenu() {
return true;
}
}