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

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

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

视频: 【Android 开发视频教程系列-专题1】美女小小 讲解 Android Studio 使用说明 之 Android Studio 项目操作 2024
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应用程序 - 傻瓜

编辑的选择

特权的基础知识在Oracle 12c - 虚拟机

特权的基础知识在Oracle 12c - 虚拟机

用户可以在Oracle 12c数据库中完成。您可能希望允许用户能够登录,但是您可能需要限制用户是否可以执行以下任一任务:访问某些数据开始...

Oracle 12c恢复管理器(RMAN)目录 - 傻瓜

Oracle 12c恢复管理器(RMAN)目录 - 傻瓜

的基础知识Oracle 12c恢复管理器(RMAN)环境,请考虑恢复目录。恢复目录是所有RMAN配置参数,备份操作和元数据的存储库。该目录可以无限期地存储备份信息。如何在Oracle 12c中选择目录模式RMAN提供了两种用于存储备份数据的选项:NOCATALOG ...

如何验证,查看和关闭Oracle 12c审计 - 傻瓜

如何验证,查看和关闭Oracle 12c审计 - 傻瓜

打开数据库中的审计记录,跟踪您制定的审计,以便您了解所做的事情。幸运的是,Oracle 12c在数据库中提供了一些视图来帮助您跟踪自己的操作:要验证您为审计配置的系统特权,请使用视图AUDIT_UNIFIED_POLICIES。要查看...

编辑的选择

Drupal友好的网页寄存公司 - 傻瓜

Drupal友好的网页寄存公司 - 傻瓜

网页寄存公司为您提供访问Web服务器,您可以在其中安装Drupal并使您的网站在Web上可见。一些公司为您安装Drupal或为您提供一键安装,为您节省了一些工作量。如果您决定自己跳过Drupal的安装,请考虑通过以下方式之一获取帐户...

Drupal花园功能 - 傻瓜

Drupal花园功能 - 傻瓜

让您有机会查看和使用所有Drupal花园功能,可以创建一个新的站点,然后选择自定义选项而不是其中一个已安装的模板:确保已经登录,然后单击我的站点链接。这样做打开了Drupal花园站点经理。点击创建...

Drupal园林主题生成器 - 傻瓜

Drupal园林主题生成器 - 傻瓜

Drupal花园设置完成后,有一些乐趣和玩你的网站上的主题。使用Drupal Gardens Theme Builder控制网站的外观是与安装Drupal自身副本不同的主要方式。但是你不会错过太多...

编辑的选择

更改MYOB中的文本和日期 - 虚拟人物

更改MYOB中的文本和日期 - 虚拟人物

MYOB为您提供了许多快捷方式以帮助简化任务。例如,您可以像在任何文字处理器中那样在MYOB中复制和粘贴文本。以下是快捷方式:按键组合快捷键结果Ctrl-A选择所有高亮显示的文本Ctrl-C复制文本Ctrl-V粘贴文本Ctrl-X删除或剪切文本Ctrl-Z取消最后一位...

在Salesforce中创建视图。当您单击Salesforce中的某个选项卡以访问特定对象(例如“帐户”,“联系人”或“个案”)时,您可以在对象主页上找到自己的服务云 - 虚拟

在Salesforce中创建视图。当您单击Salesforce中的某个选项卡以访问特定对象(例如“帐户”,“联系人”或“个案”)时,您可以在对象主页上找到自己的服务云 - 虚拟

主页,如果你选择案例,如图所示)。案例主页。当您点击Salesforce中的一个选项卡以访问特定的对象(例如,帐户,联系人或个案)时,您可以看到一些较大的,勾勒出的最近案例,报告和矩形的矩形。