版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android中完成“图书列表与详情”的代码清单范美英(北京信息职业技术学院)摘 要:Android3.0以后为了自动适应不同设备的屏幕大小,增加了Fragment类,本文详细罗列了使用Fragment等组件完成“图书列表与详情”应用的代码清单。关键词: Android;Fragment;代码清单;图书列表;图书详情1 src/ SelectBookActivity.java类的代码package com.zyk.app;import android.app.Activity;import android.content.Intent;import android.os.Bundle;impo
2、rt android.view.Display;import android.widget.TextView;public class SelectBookActivity extends Activity implements BookListFragment.CallbacksTextView tv;Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);/ 加载/res/layout目录下的activity_book_twopane.xml布局文件setConten
3、tView(R.layout.activity_book_twopane);/ 实现Callbacks接口必须实现的方法Overridepublic void onItemSelected(Integer id)Display d=getWindowManager().getDefaultDisplay();if(d.getWidth()>d.getHeight()/ 创建Bundle,准备向Fragment传入参数Bundle arguments = new Bundle();arguments.putInt(BookDetailFragment.ITEM_ID, id);/ 创建Bo
4、okDetailFragment对象BookDetailFragment fragment = new BookDetailFragment();/ 向Fragment传入参数fragment.setArguments(arguments);/ 使用fragment替换book_detail_container容器当前显示的Fragment ;Transaction交易getFragmentManager().beginTransaction().replace(R.id.book_detail_container, fragment).commit(); /elseIntent i=new
5、Intent();i.setClass(SelectBookActivity.this, BookDetailActivity.class);Bundle extras=new Bundle();extras.putInt("id", id);i.putExtras(extras);startActivity(i);2 src/ BookListFragment.java类的代码package com.zyk.app;import com.zyk.app.model.BookContent;import android.app.Activity;import android
6、.app.ListFragment;import android.os.Bundle;import android.view.View;import android.widget.ArrayAdapter;import android.widget.ListView;public class BookListFragment extends ListFragmentprivate Callbacks mCallbacks;/ 定义一个回调接口,该Fragment所在Activity需要实现该接口/ 该Fragment将通过该接口与它所在的Activity交互public interface C
7、allbackspublic void onItemSelected(Integer id);Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);/ 为该ListFragment设置AdaptersetListAdapter(new ArrayAdapter<BookContent.Book>(getActivity(),android.R.layout.simple_list_item_activated_1,android.R.id.text1, Bo
8、okContent.ITEMS);/ 当该Fragment被添加、显示到Activity时,回调该方法Overridepublic void onAttach(Activity activity)super.onAttach(activity);/ 如果Activity没有实现Callbacks接口,抛出异常if (!(activity instanceof Callbacks)throw new IllegalStateException("BookListFragment所在的Activity必须实现Callbacks接口!");/ 把该Activity当成Callba
9、cks对象mCallbacks = (Callbacks)activity;/ 当该Fragment从它所属的Activity中被删除时回调该方法Overridepublic void onDetach()super.onDetach();/ 将mCallbacks赋为null。mCallbacks = null;/ 当用户点击某列表项时激发该回调方法Overridepublic void onListItemClick(ListView listView, View view, int position, long id)super.onListItemClick(listView, vie
10、w, position, id);/ 激发mCallbacks的onItemSelected方法mCallbacks.onItemSelected(BookContent.ITEMS.get(position).id);public void setActivateOnItemClick(boolean activateOnItemClick)getListView().setChoiceMode(activateOnItemClick ? ListView.CHOICE_MODE_SINGLE: ListView.CHOICE_MODE_NONE);3 src/ BookDetailFrag
11、ment.java类的代码package com.zyk.app;import android.app.Fragment;import android.os.Bundle;import android.text.method.ScrollingMovementMethod;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import com.zyk.app.model.BookContent;publi
12、c class BookDetailFragment extends Fragmentpublic static final String ITEM_ID = "item_id"/ 保存该Fragment显示的Book对象BookContent.Book book;Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);/ 如果启动该Fragment时包含了ITEM_ID参数if (getArguments().containsKey(ITEM_ID)
13、book = BookContent.ITEM_MAP.get(getArguments().getInt(ITEM_ID); / 重写该方法,该方法返回的View将作为Fragment显示的组件Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)/ 加载/res/layout/目录下的fragment_book_detail.xml布局文件View rootView = inflater.inflate(R.layout.fragmen
14、t_book_detail, container, false);if (book != null)/ 让book_title文本框显示book对象的title属性(TextView) rootView.findViewById(R.id.book_title).setText(book.title);/ 让book_desc文本框显示book对象的desc属性(TextView) rootView.findViewById(R.id.book_desc).setText(book.desc);(TextView) rootView.findViewById(R.id.book_desc).s
15、etMovementMethod(new ScrollingMovementMethod();return rootView;4 src/ BookDetailActivity.java类的代码package com.zyk.app;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;import com.zyk.app.model.BookContent;public class BookDetailActivity
16、extends ActivityBookContent.Book book;Overrideprotected void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);this.setContentView(R.layout.fragment_book_detail);TextView tvt=(TextView) findViewById(R.id.book_title);TextView tvd=(TextView) findViewById(R.id.book_desc);Intent i=th
17、is.getIntent();int id=i.getExtras().getInt("id");book=BookContent.ITEM_MAP.get(id);tvt.setText(book.title);tvd.setText(book.desc);5 src/ BookContent.java类的代码package com.zyk.app.model;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class
18、 BookContent/ 定义一个内部类,作为系统的业务对象public static class Bookpublic Integer id;public String title;public String desc;public Book(Integer id, String title, String desc)this.id = id;this.title = title;this.desc = desc;Overridepublic String toString()return title;/ 使用List集合记录系统所包含的Book对象public static List&l
19、t;Book> ITEMS = new ArrayList<Book>();/ 使用Map集合记录系统所包含的Book对象public static Map<Integer, Book> ITEM_MAP = new HashMap<Integer, Book>();static/ 使用静态初始化代码,将Book对象添加到List集合、Map集合中addItem(new Book(1, "宝葫芦的秘密", "本书收入现代著名作家张天翼先生最著名的童话代表作宝葫芦的秘密"+ "与大林和小林。这两部作品想象
20、大胆,构思奇特,用夸张的手法和幽默" + "的语言完成了对王葆、大林、小林等著名儿童文学形象的塑,并在充满童真" + "童趣的故事中包含深远寓意,影响了一代又一代小读者。");addItem(new Book(2, "中国经典科学童话", "中国经典科学童话丛书选取了中国现当代一批有代表性的优秀科学童话 。" + "这些作品在刚发表时都受到读者的欢迎,获得各方面的好评,以后又经受了" + "长时间的历史考验,一直在读者中享有盛誉,堪称是“陈年佳酿”。");addIt
21、em(new Book(3, "飞弹男孩", "这本书故事性强,文风独特,深受好评。洛克王国探险笔记系列图书" + "为其代表作品,飞弹男孩系列图书为其最新力作,讲述热血少年的孤" + "野求生历险经历,为国内首部自然探险小说。");private static void addItem(Book book)ITEMS.add(book);ITEM_MAP.put(book.id, book);6 res/layout/activity_book_twopane.xml的代码清单<?xml version=&
22、quot;1.0" encoding="utf-8"?><!- 定义一个水平排列的LinearLayout,并指定使用中等分隔条 -><LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" android:layout_marginRight="16
23、dp" android:divider="?android:attr/dividerHorizontal" android:orientation="horizontal" android:showDividers="middle" > <!- 添加一个Fragment -> <fragment android:id="+id/book_list" android:name="com.zyk.app.BookListFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" /></LinearLayout> 7 res/layout/fragment_book_detail.xml的代码清单<?xml version="1.0" encoding="utf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电子级高纯溶剂项目营销方案
- 初中体育篮球运球动作的柔韧性训练方法研究课题报告教学研究课题报告
- 数字化背景下初中数学教师教学画像构建与更新机制探讨教学研究课题报告
- 神经外科术后护理病例分享
- 肺炎护理中的家庭支持系统
- 山东管理学院2026年公开招聘人员备考题库(长期招聘岗位)参考答案详解
- 山东高速集团有限公司2025年下半年校园招聘(管培生和战略产业人才招聘)备考题库及参考答案详解一套
- 山东高速集团有限公司2025年下半年校园招聘(管培生和战略产业人才招聘)备考题库及完整答案详解1套
- 山西大地环境投资控股有限公司2025年社会招聘备考题库及参考答案详解
- 2026年昆明市五华人民医院招聘派遣制工作人员(放射技师)(1人)备考题库附答案
- 2025年物业管理中心工作总结及2026年工作计划
- 雨课堂学堂在线学堂云军事理论国防大学单元测试考核答案
- 马路切割承包协议书
- 多源医疗数据融合的联邦学习策略研究
- 2025至2030中国工业边缘控制器行业运营态势与投资前景调查研究报告
- 磁电感应式传感器课件
- 学校控辍保学工作流程及四书一表一单
- 2026届湖南省常德市石门一中生物高二第一学期期末统考试题含解析
- 20052-2024电力变压器能效限定值及能效等级
- 冷渣机调整课件
- 地埋式生活污水处理工艺技术方案
评论
0/150
提交评论