- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是对上一个问题的扩展,但问题更多,代码更少 (Android starting another activity or calling a method from another class (using fragments))。在编写结合位置 API 代码的抽屉导航示例应用程序时,我试图更好地了解 fragment 和 Activity 在 Android 应用程序中的工作方式。
据我了解,必须创建抽屉导航以扩展 Activity,以便正确执行 UI 组件。到目前为止,我所做的是将我的 UI Pane 分解为不同的 fragment ,每个 fragment 具有不同的 XML 和 Java 文件。 Java 文件从其中指定的 XML 构建 UI,并在内容 Pane 中显示内容,同时保持抽屉导航完好无损,类似于:http://manishkpr.webheavens.com/android-navigation-drawer-example-using-fragments/ .
这些 fragment 中的每一个,除了“Home”之外,都需要来自 Location APIs/Location Activity 的代码,它基于这个 MainActivity:https://developer.android.com/training/location/retrieve-current.html .但是我有两个问题:
我的 Location Activity 类具有代码 onCreate 以从 UI 填充 TextView 变量。但是 UI 全部由 fragment 处理。因此,每次创建 Location Activity 时,这些变量都为空,因为 Activity 似乎不与 fragment UI 通信。
fragment 中的按钮调用仅存在于 Location Activity 中的方法。而且它们似乎不与 Activity 通信,仅与它们的 fragment Java 类通信。
那么首先,这听起来像是正确的方法吗?使用 fragment 处理抽屉导航中的选项并在内容 Pane 中生成内容?如果是这样,我如何让它与位置 Activity 一起使用?
最佳答案
我在很多方面都遇到过你在这里所说的,我认为这里没有对错..主要是因为有时候工作不会让你自由地做你想做的事。
一个。让我们假设您不希望用户在完成 fragment 膨胀之前做任何事情,所以第一个 Action 将是 (ui/ux) 显示进度对话框。
仅出于纵容考虑,假设您正在或已经将 fragment 添加到某种布局中(可以说是相对布局)..此布局可以扩展到您自己的类(class),请参阅: http://developer.android.com/training/custom-views/create-view.html
现在,在您的特殊类(class)中,您可以使用两者之一(取决于您想要进入的时刻)任何一个 - @覆盖 protected void onFinishInflate() { super.onFinishInflate(); }或者 - @覆盖 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); }(请记住,onMeasure 有可能被多次调用,而不仅仅是在开始时。)
因此,我们有一个正在扩展的 View ,我们可以在 Activity 的 onCreate 上对其进行 grep 甚至在它被创建和膨胀之前。在这个扩展 View 中,我将添加一个公共(public)函数,如:
public void setOnFinishInflatingTheChikenOrTheEggListener(IonFinished 监听器)
...
IonFinished 将是一个带有简单功能的简单界面,只是告诉您 View 已完成在屏幕上膨胀。
现在让您的 Activity 实现 IonFinished,并将其作为参数传递给 setOnFinishInflatingTheChikenOrTheEggListener 函数,将其保存在那里,当调用我们之前覆盖的函数之一时,您可以触发此监听器。
此功能已在您的 Activity 中触发,在这里可以安全地获取您的 fragment ,并与他一起做某事..因为您确定所有 View 都已到位...(此时不要忘记关闭对话框)。
(如果你不明白,告诉我,我给你举个例子......)
2。回答:让我们继续第二个问题,这比以前容易得多,在你的 fragment 中你有按钮,你为他们设置了一个 onClickListner ...在其中你应该使用以下内容:
Activity activity = getActivity();
if(activity!=null && activity instanceof LocationActivity ){
LocationActivity myLocationActivity = (LocationActivity)activity;
//****************************************************************
// call here to any public function in your activity, get set listeners, basically do anything..
}
希望它有助于了解更多关于 fragment ...
关于Android fragment 和 Activity 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17507939/
我最近在/ drawable中添加了一些.gifs,以便可以将它们与按钮一起使用。这个工作正常(没有错误)。现在,当我重建/运行我的应用程序时,出现以下错误: Error: Gradle: Execu
Android 中有返回内部存储数据路径的方法吗? 我有 2 部 Android 智能手机(Samsung s2 和 s7 edge),我在其中安装了一个应用程序。我想使用位于这条路径中的 sqlit
这个问题在这里已经有了答案: What's the difference between "?android:" and "@android:" in an android layout xml f
我只想知道 android 开发手机、android 普通手机和 android root 手机之间的实际区别。 我们不能从实体店或除 android marketplace 以外的其他地方购买开发手
自Gradle更新以来,我正在努力使这个项目达到标准。这是一个团队项目,它使用的是android-apt插件。我已经进行了必要的语法更改(编译->实现和apt->注释处理器),但是编译器仍在告诉我存在
我是android和kotlin的新手,所以请原谅要解决的一个非常简单的问题! 我已经使用导航体系结构组件创建了一个基本应用程序,使用了底部的导航栏和三个导航选项。每个导航选项都指向一个专用片段,该片
我目前正在使用 Facebook official SDK for Android . 我现在正在使用高级示例应用程序,但我不知道如何让它获取应用程序墙/流/状态而不是登录的用户。 这可能吗?在那种情
我在下载文件时遇到问题, 我可以在模拟器中下载文件,但无法在手机上使用。我已经定义了上网和写入 SD 卡的权限。 我在服务器上有一个 doc 文件,如果用户单击下载。它下载文件。这在模拟器中工作正常但
这个问题在这里已经有了答案: What is the difference between gravity and layout_gravity in Android? (22 个答案) 关闭 9
任何人都可以告诉我什么是 android 缓存和应用程序缓存,因为当我们谈论缓存清理应用程序时,它的作用是,缓存清理概念是清理应用程序缓存还是像内存管理一样主存储、RAM、缓存是不同的并且据我所知,缓
假设应用程序 Foo 和 Eggs 在同一台 Android 设备上。任一应用程序都可以获取设备上所有应用程序的列表。一个应用程序是否有可能知道另一个应用程序是否已经运行以及运行了多长时间? 最佳答案
我有点困惑,我只看到了从 android 到 pc 或者从 android 到 pc 的例子。我需要制作一个从两部手机 (android) 连接的 android 应用程序进行视频聊天。我在想,我知道
用于使用 Android 以编程方式锁定屏幕。我从 Stackoverflow 之前关于此的问题中得到了一些好主意,并且我做得很好,但是当我运行该代码时,没有异常和错误。而且,屏幕没有锁定。请在这段代
文档说: android:layout_alignParentStart If true, makes the start edge of this view match the start edge
我不知道这两个属性和高度之间的区别。 以一个TextView为例,如果我将它的layout_width设置为wrap_content,并将它的width设置为50 dip,会发生什么情况? 最佳答案
这两个属性有什么关系?如果我有 android:noHistory="true",那么有 android:finishOnTaskLaunch="true" 有什么意义吗? 最佳答案 假设您的应用中有
我是新手,正在尝试理解以下 XML 代码: 查看 developer.android.com 上的文档,它说“starStyle”是 R.attr 中的常量, public static final
在下面的代码中,为什么当我设置时单选按钮的外观会发生变化 android:layout_width="fill_parent" 和 android:width="fill_parent" 我说的是
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
假设我有一个函数 fun myFunction(name:String, email:String){},当我调用这个函数时 myFunction('Ali', 'ali@test.com ') 如何
我是一名优秀的程序员,十分优秀!