一个简单的新闻应用
2016-01-06 19:05
399 查看
首先,编写一个代表新闻的类,如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106181500715-2060825996.png)
接着新建news_title.xml布局:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106181609668-676095010.png)
接着建立NewsTitle的适配器,如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106182515528-348085658.png)
建立新闻内容的布局文件:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106184155590-1339428567.png)
然后建立一个NewsContentFragment类,如下图:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106185027496-85364734.png)
接着创建一个在活动中使用的新闻内容布局,新建news_content.xml,代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106185410762-1818347182.png)
新建NewsContentActivity,作为显示新闻内容的活动,代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106201427731-1880510198.png)
接下来,创建一个news_title_frag.xml,代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106201737918-375584942.png)
新建一个NewsTitleFragment类:
public class NewsTitleFragment extends Fragment implements OnItemClickListener {
private ListView newsTitleListView;
private List<News> newsList;
private NewsAdapter adapter;
private boolean isTwoPane;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//初始化新闻数据
newsList=getNews();
adapter=new NewsAdapter(activity, R.layout.news_item, newsList);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.news_content_frag, container,false);
newsTitleListView=(ListView) view.findViewById(R.id.news_title_list_view);
newsTitleListView.setAdapter(adapter);
newsTitleListView.setOnItemClickListener(this);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if(getActivity().findViewById(R.id.news_content)!=null){
isTwoPane=true;
}else{
isTwoPane=false;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
News news=newsList.get(position);
if(isTwoPane){
NewsContentFragment newsContentFragment=(NewsContentFragment) getFragmentManager().findFragmentById(R.id.news_content_fragment);
newsContentFragment.refresh(news.getTitle(), news.getContent());
}else{
NewsContentActivity.actionStart(getActivity(), news.getTitle(), news.getContent());
}
}
private List<News> getNews(){
List<News> newsList=new ArrayList<News>();
News news1=new News();
news1.setTitle("news1");
news1.setContent("This is news1 !");
News news2=new News();
news2.setTitle("news2");
news2.setContent("This is news2 !");
newsList.add(news1);
newsList.add(news2);
return newsList;
}
}
修改activity_main.xml文件:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106205127231-1783980365.png)
在单页模式下,只会加载一个碎片,然后新建layout-sw600dp文件夹,在文件夹下建立activity_main.xml文件:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106205331325-804747535.png)
那么最后主活动的代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106181500715-2060825996.png)
接着新建news_title.xml布局:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106181609668-676095010.png)
接着建立NewsTitle的适配器,如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106182515528-348085658.png)
建立新闻内容的布局文件:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106184155590-1339428567.png)
然后建立一个NewsContentFragment类,如下图:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106185027496-85364734.png)
接着创建一个在活动中使用的新闻内容布局,新建news_content.xml,代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106185410762-1818347182.png)
新建NewsContentActivity,作为显示新闻内容的活动,代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106201427731-1880510198.png)
接下来,创建一个news_title_frag.xml,代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106201737918-375584942.png)
新建一个NewsTitleFragment类:
public class NewsTitleFragment extends Fragment implements OnItemClickListener {
private ListView newsTitleListView;
private List<News> newsList;
private NewsAdapter adapter;
private boolean isTwoPane;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//初始化新闻数据
newsList=getNews();
adapter=new NewsAdapter(activity, R.layout.news_item, newsList);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.news_content_frag, container,false);
newsTitleListView=(ListView) view.findViewById(R.id.news_title_list_view);
newsTitleListView.setAdapter(adapter);
newsTitleListView.setOnItemClickListener(this);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if(getActivity().findViewById(R.id.news_content)!=null){
isTwoPane=true;
}else{
isTwoPane=false;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
News news=newsList.get(position);
if(isTwoPane){
NewsContentFragment newsContentFragment=(NewsContentFragment) getFragmentManager().findFragmentById(R.id.news_content_fragment);
newsContentFragment.refresh(news.getTitle(), news.getContent());
}else{
NewsContentActivity.actionStart(getActivity(), news.getTitle(), news.getContent());
}
}
private List<News> getNews(){
List<News> newsList=new ArrayList<News>();
News news1=new News();
news1.setTitle("news1");
news1.setContent("This is news1 !");
News news2=new News();
news2.setTitle("news2");
news2.setContent("This is news2 !");
newsList.add(news1);
newsList.add(news2);
return newsList;
}
}
修改activity_main.xml文件:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106205127231-1783980365.png)
在单页模式下,只会加载一个碎片,然后新建layout-sw600dp文件夹,在文件夹下建立activity_main.xml文件:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106205331325-804747535.png)
那么最后主活动的代码如下:
![](http://images2015.cnblogs.com/blog/798970/201601/798970-20160106205422137-346257472.png)
相关文章推荐
- 面向接口编程详解(三)——模式研究
- Business Intelligence——SSIS项目从创建到部署的简单总结(一)
- codevs 1380 没有上司的舞会
- 面向接口编程详解(二)——编程实例
- 高斯消元算法实现(Java)
- 离散--繁琐的定义
- 离散--第二节--证明方法
- ListView 请求(加载)可视区域Item的图片
- std::upper_bound
- JSON,ListView AsyncHttpClient 等第三方包的综合实应用
- iOS拨打电话(三种方法)
- 面向接口编程详解(一)——思想基础
- OPenCV视频的读取
- Qt中QPicture对报表的实现
- 近期有感
- 卷积神经网络CNN在自然语言处理的应用
- LeetCode OJ:Search in Rotated Sorted Array(翻转排序数组的查找)
- DrawerLayout的使用
- 正确认识使用UML中的类图——辨析类图的两种存在形式
- Java基础之枚举妙用