zoukankan      html  css  js  c++  java
  • 一个简单的新闻应用

    首先,编写一个代表新闻的类,如下:

    接着新建news_title.xml布局:

    接着建立NewsTitle的适配器,如下:

    建立新闻内容的布局文件:

    然后建立一个NewsContentFragment类,如下图:

    接着创建一个在活动中使用的新闻内容布局,新建news_content.xml,代码如下:

    新建NewsContentActivity,作为显示新闻内容的活动,代码如下:

     接下来,创建一个news_title_frag.xml,代码如下:

     新建一个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文件:

    在单页模式下,只会加载一个碎片,然后新建layout-sw600dp文件夹,在文件夹下建立activity_main.xml文件:

    那么最后主活动的代码如下:

  • 相关阅读:
    每天读一遍,坚持30天,和老外交流没问题!
    网络数据原来是这么传输的(结合动画解析)
    技术创新驱动发展 思岚科技入选“科技独角兽百人团”
    获取当前数据库所有表的外键创建脚本、获取指定表的创建脚本,包括表和字段的属性、外键
    009深入理解CPU位数和操作系统位数,总线等等关系
    008_32位系统和64位系统有什么区别?
    007_计算机总线
    006_查看window实际支持的最大内存
    005_为何64位下一个指针大小为8个字节和32/64位系统的关系
    Kotlin 委托(2)变量委托是什么、自定义变量委托
  • 原文地址:https://www.cnblogs.com/hujingwei/p/5106660.html
Copyright © 2011-2022 走看看