package com.ywwxhz.fragments; import android.app.Activity; import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import com.ywwxhz.cnbetareader.R; import com.ywwxhz.data.impl.NewsDetailProvider; import com.ywwxhz.entitys.NewsItem; import com.ywwxhz.processers.NewsDetailProcesser; /** * cnBetaReader * <p/> * Created by 远望の无限(ywwxhz) on 2015/4/27 15:30. */ public class NewsDetailFragment extends Fragment { public static final String NEWS_SID_KEY = "key_news_sid"; public static final String NEWS_TITLE_KEY = "key_news_title"; private NewsDetailProcesser processer; private int sid; private String title; public interface NewsDetailCallBack{ void onNewsLoadFinish(NewsItem item,boolean success); void CommentAction(int sid,String sn,String title); void onVideoFullScreen(boolean isFullScreen); void onShowHtmlVideoView(View html5VideoView); void onHideHtmlVideoView(View html5VideoView); } public static NewsDetailFragment getInstance(int sid,String title){ NewsDetailFragment f = new NewsDetailFragment(); Bundle args = new Bundle(); args.putInt(NEWS_SID_KEY,sid); args.putString(NEWS_TITLE_KEY,title); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); Bundle args = getArguments(); if(args!=null&&args.containsKey(NEWS_SID_KEY)&&args.containsKey(NEWS_TITLE_KEY)){ sid = args.getInt(NEWS_SID_KEY); title = args.getString(NEWS_TITLE_KEY); } } @Override public void onAttach(Activity activity) { super.onAttach(activity); if(processer==null) { processer = new NewsDetailProcesser(new NewsDetailProvider(activity)); } processer.setActivity((AppCompatActivity) activity); if(activity instanceof NewsDetailCallBack){ processer.setCallBack((NewsDetailCallBack) activity); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_detail,container,false); processer.assumeView(view); processer.setNewsItem(sid,title); return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); processer.loadData(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); processer.onCreateOptionsMenu(menu,inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { return processer.onOptionsItemSelected(item); } @Override public void onResume() { super.onResume(); processer.onResume(); } @Override public void onPause() { super.onStop(); processer.onPause(); } @Override public void onDestroy() { super.onDestroy(); processer.onDestroy(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); processer.onConfigurationChanged(newConfig); } public boolean onKeyDown(int keyCode, KeyEvent event){ return processer.onKeyDown(keyCode, event); } }