社交媒体 如何使用片段编程您的Android应用程序 - 傻瓜

如何使用片段编程您的Android应用程序 - 傻瓜

视频: 【Android 开发视频教程系列-专题1】美女小小 讲解 Android Studio 使用说明 之 Android Studio 项目操作 2025

视频: 【Android 开发视频教程系列-专题1】美女小小 讲解 Android Studio 使用说明 之 Android Studio 项目操作 2025
Anonim

这里使用的Android应用示例中的用户界面有三个面板 - 项目列表,详细信息面板描述列表中选择的项目,还有一个详细的更深入的面板。在小型智能手机屏幕上,每个面板可能是一个单独的活动。但横向模式下的平板电脑屏幕有多个面板的空间。

下面的图片显示了这个应用程序与三个面板中的两个。左侧的面板显示Android SDK组件列表。右侧的面板显示左侧列表中所选组件的描述。 (这个描述实际上是组件的SDK文档的前几个句子。)这个细节在右边的模式是许多用户界面的一部分。

<! --1 - >

附加到一个活动的两个片段。

要创建显示,您需要创建一个活动。活动有两个片段 - 一个片段在左边,另一个在右边。左侧面板在应用程序运行过程中显示相同的片段,因此您可以在活动的布局文件中声明该片段。右侧面板一次显示一个片段,但片段在应用运行过程中发生变化。所以你在右面板中声明一个框架布局。

<!在上面的代码中,android:layout_ whatever属性把屏幕分成两半 - 一半是片段元素,另一半是FrameLayout元素。具有这些属性的策略是首先为每个元素分配最小的零像素。当然,零像素意味着根本没有宽度(这是不可见的)。要使布局的两半不可见,请将相等的非零layout_weight值分配给两半。在非零权重值的情况下,每一半都会扩展以填充布局中的可用空间。

使用片段的完全限定类名称(com.allmycode.core.ComponentNamesFragment)是有意的。一个缩写名称(如.ComponentNamesFragment)不会切断芥末。

如果您想知道,Android的内置detailsElementBackground为右半部分(显示用户所选项目的详细信息)提供统一的外观。

该应用程序的主要活动代码令人难以置信。

package com。 allmycode。 FRAG;导入android。应用程序。活动;导入android。操作系统。束;公共类AllPurposeActivity扩展活动{@Override保护无效的onCreate(Bundle savedInstanceState){超级。的onCreate(savedInstanceState);的setContentView(R。布局。 main);}}

下面的代码包含ComponentNamesFragment类。根据第一个示例中的布局,Android在设备屏幕的左侧植入了一个ComponentNamesFragment。

package com。 allmycode。 FRAG;导入android。应用程序。 FragmentManager;导入android。应用程序。 FragmentTransaction;导入android。应用程序。 ListFragment;导入android。操作系统。束;导入android。视图。视图;导入android。小部件。 ArrayAdapter;导入android。小部件。列表显示;公共类ComponentNamesFragment扩展ListFragment {最终静态字符串[]组件= {“活动”,“服务”,“BroadcastReceiver”,“ContentProvider”}; @Override public void onActivityCreated(Bundled savedInstanceState){super。 onActivityCreated(savedInstanceState); setListAdapter(new ArrayAdapter(getActivity(),android.R. layout。simple_list_item_1,COMPONENTS));} @Override public void onListItemClick(ListView l,View v,int index,long id){//创建带索引的片段DocsFragment docsFragment =新的DocsFragment();捆绑args =帮手。 getBundleWithIndex(索引); docsFragment。 setArguments(参数); //清除后退堆栈FragmentManager fragmentManager = getFragmentManager(); int backStackEntryCount = fragmentManager。 getBackStackEntryCount(); for(int i = 0; i

上面代码中的类扩展了Android的ListFragment类。 ListFragment是一个显示列表的片段。在片段生命周期的早期,上面例子中的代码为片段设置了一个列表适配器(更具体地说是一个ArrayAdapter)。那么“早点”有多早? ArrayAdapter构造函数的第一个参数是一个上下文。可是等等!与活动不同,片段不是一个上下文。所以你不能使用关键字this作为ArrayAdapter构造函数的第一个参数。幸运的是,一个片段有一个getActivity方法。对getActivity的调用会抓取片段附加到的活动。所以,对于ArrayAdapter构造函数的第一个参数,可以调用getActivity。当然,除非片段附加到现有活动,否则无法调用getActivity。这就是为什么片段的onActivityCreated方法在上面覆盖。在附加片段并调用活动的onCreate方法之后,Android调用onActivityCreated。所以一切都按计划进行。 android。应用程序。 Activity类的曾祖父类是android。内容。语境。但是android。应用程序。片段类的父类是普通的老Java。郎。目的。因此,在一个活动的代码中,这个关键字是指一个上下文。但是在一个片段的代码中,这个关键字并不是指上下文。

在上面的例子中,ArrayAdapter的构造函数有三个参数。

第一个参数是上下文 - 这个令人讨厌的参数迫使你把构造函数放在onActivityCreated方法中。

第二个参数是simple_list_item_1 - 一个标准的Android布局。

simple_list_item_1布局创建您在图像左侧看到的外观。 Android有很多这些标准的布局。有关可用布局的综述,请访问Android的开发者网站。

第三个参数是将出现在列表中的项目的集合。

在这个例子中,这些项目来自在同一个例子中声明的COMPONENTS数组。

就像一个ListActivity,一个ListFragment有一个onListItemClick方法。您可以通过使用DocsFragment,FragmentTransaction和FragmentManager来响应点击:

DocsFragment代表上图中的右侧。片段事务是你用碎片做的一堆事情。例如,设置替换一个片段是一个事务。

片段管理器的名字就是这么做的。它管理碎片的到达和离开。

如何使用片段编程您的Android应用程序 - 傻瓜

编辑的选择

在QuickBooks Online中使用批发帐单 - 虚拟

在QuickBooks Online中使用批发帐单 - 虚拟

QuickBooks Online为会计专业人员提供免费程序。您可以注册批发价格计划,也可以免费使用QBOA。如果你选择这样做(这是一个不错的选择!),你将需要知道如何管理的事情。从您的批发帐单订阅中删除客户有时候,事情并不是这样...

基于零基础的预算与QuickBooks 2012 - 傻瓜

基于零基础的预算与QuickBooks 2012 - 傻瓜

零基预算是一个非常有用和常用的预算策略在使用QuickBooks 2012之前,您应该先了解一下。基于零的预算与顶级预算相反。零基预算从下到上工作。零基预算始于个人收入,费用,资产,负债和所有者权益账户。它检查一个特定的...

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

在Sage Timeslips中10个有用的键盘快捷键 - 虚拟键盘

键盘快捷键可以是Sage Timeslips 。启动或保存一张单据,将昨天,今天或明天的日期插入日期字段,并用一个或两个按键打开和关闭定时器。以下是十大最爱。按下它做什么Ctrl + N开始一个新的投票,而工作在...

编辑的选择

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

可以在Photoshop Elements 11中的任意形状图层上绘制多个图形 - 虚拟模型

Photoshop Elements 11中创建的任何形状图层上的图形。您可以按照与选择相同的方式添加,减去,排除重叠和相交形状。请遵循以下步骤:创建第一个形状后,在工具选项:添加到形状区域中选择一个状态按钮:...

使用读卡器将图像下载到Mac上 - 傻瓜

使用读卡器将图像下载到Mac上 - 傻瓜

您的相机可能有一个USB端口,电缆,您可以使用下载您的图像。这种方法使用相机电池电力,也相当缓慢。如果您使用读卡器,则会更快地将图像存入计算机。如果您下载了大量的图像,请考虑购买FireWire读卡器; ...

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

在Photoshop Elements 10中创建形状图层后,在Photoshop Elements 10中绘制多个图形 - 虚拟形状

可以在该图层上绘制其他形状。您可以按照与选择相同的方式添加,减去,重叠和相交形状。请记住,当您在元素中创建一个形状时,您正在创建一个基于矢量的元素。向量在数学上描述形状。 ...

编辑的选择

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

在您的IOS应用程序中添加模态视图 - 在iPhone和iPad上虚拟视图

对于那些希望用户(或用户想要)在应用程序流之外执行某些操作的情况非常适用。而不是使用带有后退按钮的导航控制器,而是显示一个模式视图,其中的控件允许用户选择一个动作或...

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

Android应用程序开发:你的Twitter应用程序的文件 - 傻瓜

,这个Android Studio项目包含大约100个文件和大约170个不同的文件夹。要制作Android Twitter应用程序,您需要专注于该项目的MainActivity。 java文件。但其他一些文件需要注意。 Twitter4J API jar文件Android没有内置的通信支持...