Android Fragment功能的例子

实现的功能很简单,也是最基本的,上下分别是两个Fragment,上面的Fragment中是一个listview,当点击item时,下面的Fragment显示对应的文字详细信息

具体的实现步骤如下:
①创建工程FragmentExam,目录视图如下(把之前的FragmentPreference的demo也加到了一起):
②main.xml文件布局,垂直方向上两个Fragment,用<Fragment>标签声明

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" android:orientation="vertical"android:background="#7ecef4"><fragment android:name="com.example.fragementexam.FragementList"android:id="@+id/frag_list"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="2"/><fragment android:name="com.example.fragementexam.FragementDetails"android:id="@+id/frag_detail"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="1"/>
</LinearLayout>

③FragmentList.java的代码,它继承了ListFragment,注意在onCreateView方法中使用inflater的inflate方法将布局页面引进:

package com.example.fragementexam;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.ListFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleAdapter;public class FragementList extends ListFragment {private String[] values = new String[] { "侏儒", "人类", "暗夜精灵", "矮人", "德莱尼","狼人" };private int[] images = new int[] { R.drawable.gnome,R.drawable.human, R.drawable.nightelf,R.drawable.dwarf, R.drawable.draenei,R.drawable.werewolf };@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return inflater.inflate(R.layout.frag_list, container, false);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();for (int i = 0; i < values.length; i++) {Map<String, Object> listItem = new HashMap<String, Object>();listItem.put("values", values);listItem.put("images", images);listItems.add(listItem);}SimpleAdapter adapter = new SimpleAdapter(getActivity(), listItems,R.layout.list_item, new String[] { "values", "images" },new int[] { R.id.txt_title, R.id.img });setListAdapter(adapter);}@Overridepublic void onListItemClick(ListView l, View v, int position, long id) {// String item = (String) getListAdapter().getItem(position);FragementDetails frag = (FragementDetails) getFragmentManager().findFragmentById(R.id.frag_detail);if (frag != null && frag.isInLayout()) {switch (position) {case 0:frag.setText(getString(R.string.Gnome));break;case 1:frag.setText(getString(R.string.Human));break;case 2:frag.setText(getString(R.string.NightElf));break;case 3:frag.setText(getString(R.string.Dwarf));break;case 4:frag.setText(getString(R.string.Draenei));break;case 5:frag.setText(getString(R.string.Werewolf));break;}}Log.i("PDA", "position = " + position);}}

④FragementDetails.java的代码,这个比较简单,里面有一个设置TextView内容的方法,其布局页面也仅仅是一个TextView

package com.example.fragementexam;import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;public class FragementDetails extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubreturn inflater.inflate(R.layout.frag_detail, container,false);}public void setText(String item){TextView txt = (TextView) getView().findViewById(R.id.txt_detail);txt.setText(item);}}

其他的部分就是一些数组,String的定义了,这个demo虽然简单,却将Android Fragment方面常用到的做了一个综述,如果自己写明白了这个的话,今后遇到类似的项目应该要好应付的多

 

转载于:https://www.cnblogs.com/zhujiabin/p/4192707.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java上传图片http错误_上传图片出错

源码&#xff1a;package action;import java.io.IOException;import com.qiniu.common.QiniuException;import com.qiniu.http.Client;import com.qiniu.http.Response;import com.qiniu.storage.UploadManager;import com.qiniu.util.Auth;public class UploadAction {public…

template标签_C++核心准则T.65:使用标签分发提供函数的不同实现

T.65: Use tag dispatch to provide alternative implementations of a functionT.65:使用标签分发提供函数的不同实现Reason(原因)A template defines a general interface.模板定义普遍接口。Tag dispatch allows us to select implementations based on specific properties…

Windows服务器学习篇:服务器连接与退出

此文是我早期在公司内部发布的一篇给予新入职程序员基础技术培训的文章&#xff0c;非常基础简单&#xff0c;现拿出来给大家分享。当然&#xff0c;已工作人士可直接忽略... 一、Windows服务器连接 1. 在桌面菜单中的“运行”里&#xff0c;输入mstsc命令&#xff0c;然后回车…

nginx动静分离配置_Nginx动静分离

动静分离动静分离&#xff0c;就是将JSP、Servlet等动态资源交由Tomcat或其他Web服务器处理&#xff0c;将CSS、js、image等静态资源交由Nginx或其他Http服务器处理&#xff0c;充分发挥各自的优势&#xff0c;减轻其他服务器的压力&#xff0c;搭建更为高效的系统架构。Nginx动…

用java自动化访问百度测试_java+eclipse+selenium+百度搜索设置自动化测试

在eclipse中新建一个项目baidutest&#xff1b;再在src文件夹中新建一个包com.baidutest.homework&#xff1b;再在包中新建一个java类baidusetting&#xff0c;并设置为静态类&#xff1b;最后在项目中新建一个lib文件夹&#xff0c;将selenium的所有架包拷贝到lib文件夹中&am…

内存泄漏以及常见的解决方法

之所以撰写这篇文章是由于前段时间花费了非常大的精力在已经成熟的代码上再去处理memory leak问题。写此的目的是希望我们应该养成良好的编码习惯&#xff0c;尽可能的避免这种问题&#xff0c;由于当你对着一大片的代码再去处理此类的问题&#xff0c;此时无疑添加了解决的成本…

python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

首先找到要下载的歌曲排行榜的链接&#xff0c;这里用的是&#xff1a;https://music.163.com/discover/toplist?id3778678然后更改你要保存的目录&#xff0c;目录要先建立好文件夹&#xff0c;例如我的是保存在D盘-360下载-网易云热歌榜文件夹内&#xff0c;就可以完成下载。…

java thread 名称_Thread类常用方法之设置线程名称

package com.itheima.demo02.setName;/*设置线程的名称:(了解)1.使用Thread类中的方法setName(名字)void setName(String name) 改变线程名称&#xff0c;使之与参数 name 相同。2.创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让…

HDU 1108 最小公倍数

最小公倍数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32794 Accepted Submission(s): 18303Problem Description给定两个正整数&#xff0c;计算这两个数的最小公倍数。Input输入包括多组測试数据&#…

Java为xml跟节点添加子节点_如何将xml节点作为第一个子节点插入Java中的另一个xml文档中?...

小编典典如果事实证明我只是为您做功课&#xff0c;我会感到非常恼火。package com.akonizo.examples;import java.io.ByteArrayInputStream;import java.io.StringWriter;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import j…

成员变量和局部变量的区别_Java 变量类型

点击上方“蓝字”带你去看小星星今天主要学习Java变量类型&#xff0c;主要是局部变量、实例变量和类变量(静态变量)。Java语言中&#xff0c;所有的变量在使用前必须声明。声明变量的基本格式如下&#xff1a;type identifier [ value][, identifier [ value] ...] ;格式说明…

java gson序列化_java – Gson多态序列化

使用Gson 2.2.2我正在尝试序列化POJO(行为)的数组列表.我有一个适配器几乎是我在网上看到的副本&#xff1a;public class BehaviorAdapter implements JsonSerializer {private static final String CLASSNAME "CLASSNAME";private static final String INSTANCE …

【云图】如何制作附近实体店的地图?-微信微博支付宝

【云图】如何制作附近实体店的地图&#xff1f;-微信微博支付宝 原文:【云图】如何制作附近实体店的地图&#xff1f;-微信微博支付宝 摘要&#xff1a; 附近连锁店地图与全国连锁店地图&#xff0c;最大的区别就是&#xff1a; 1、附近连锁店地图需要先定位&#xff0c;然后搜…

php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)

3e2f08c0c11a8416dd107bbfc9159718.jpg客户端代码请求参数参数类型参数说明$urlstringpost提交的服务器url路径$data数组表单数据$files数组表单文件public function curl_custon_postfields($url, array $data array(), array $files array()){$curlfiles array();foreach …

oracle 分页_80分页查询,不止写法

据孔老先生说,茴香豆的茴字有四种写法,那oracle的分页查询又有多少种写法呢?分页查询,其实本质上就是topN查询的变种, 如果把topN的一部分结果集去掉,就变成了分页.topN的基本写法,两层select,第一层先order by,第二层再用rownum:select owner,object_name,object_id,rownum a…

笔记:Hadoop权威指南 第1章 初识Hadoop

大数据处理遇到问题&#xff1a; (1)、磁盘存储容量快速增加&#xff0c;但是访问速度进步不大&#xff1b;用户乐意使用磁盘共享访问。 (2)、硬件故障&#xff0c;可以使用备份解决。 (3)、分布式系统&#xff0c;需要可靠性。 关系数据库与MapReduce比较&#xff1a; (1)、磁…

php switch if,php switch 与 if else 区别

在php中switch是选择&#xff0c;if else也有同理&#xff0c;但是它们肯定是有区别的&#xff0c;那么我们来看看它们两者的区别在哪里呢&#xff0c;下面先看switch case语句吧。switch($id){case 1:return asp/;break;case 2:return phper/;break;case 3:return jsp/;break;…

python读取mat数据是字典形式如何转化为矩阵_mat2json, python读取mat成字典, 保存json...

python程序, 实现matlab的.mat格式转化为dict / json .第一个参数mat_path代表需要转化的mat路径;第二个参数, 如果需要把字典序列化成json, 添加这一参数, 代表json存放位置;返回值: 转化好的字典import osimport jsonimport scipy.io as spioimport pandas as pddef loadmat(…

GitHub上创建组织

4.3. 组织和团队 GitHub 在早期没有专门为组织提供账号&#xff0c;很多企业用户或大型开源组织只好使用普通用户账号作为组织的共享账号来使用。后来&#xff0c;GitHub推出了组织这一新的账号管理模式&#xff0c;满足大型开发团队的需要。 组织账号是不能用来登录的&#xf…

jquery根据value值php,表单php传值后jquery清除表单某项value问题

表单php文件我现在写了一个jquery打算每次提交后清除姓名中的内容代码如下$(function() { $(:input,#recordform) .not(:button, :submit, :reset, :hidden) .val() })请问怎么使用啊 加在哪个都无法实现提交后清除姓名求助&#xff01;回复讨论(解决方案)不知道你的 js 函数 c…