版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高校教育三元关联:教师支持、自我决定动机与大学生学业情绪探究
- 高校岗位津贴制度的深度剖析与创新设计:以L大学为例
- 高校大学生就业竞争力评价指标体系的构建与实践:基于多维度分析与案例研究
- 高校医学与非医学专业大学生吸烟行为特征及影响因素剖析
- 高校“以生为本”教学模式:内涵、实践与创新发展
- 高新技术企业信用风险评价:体系构建与案例分析
- 养老护理试题(含答案)
- 冬季防冻安全考核试题库及答案
- 加气混凝土砌块施工试题(含答案)
- 铁路安全管理条例
- 浙江金华市2025-2026学年高二下学期6月期末英语试题(含答案无听力原文无音频)
- 2026年四川省省直机关遴选和选调公务员申论+行政职业能力测验+综合知识复习题及答案
- 2026供热考试题库及答案解析
- 南京市2025江苏南京航空航天大学自动化学院劳务派遣岗位招聘2人笔试历年参考题库典型考点附带答案详解
- GB 6441-2025生产安全事故分类与编码
- T-CHAS 10-2-19-2023 中国医院质量安全管理 第2-19部分:患者服务 内镜治疗
- 2026年二级建造师之二建建筑工程实务考试题库500道及完整答案【必刷】
- 医疗机构运营管理经验分享
- 建筑工程安全生产治本攻坚三年行动方案
- 2025年下半年山东济宁城投控股集团招聘工作人员109易考易错模拟试题(共500题)试卷后附参考答案
- 20052-2024电力变压器能效限定值及能效等级
评论
0/150
提交评论