- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我这里有三个项目:一个名为 ActivityName
的基本 Activity 、一个从名为 FragmentName
的 Activity 调用的 fragment ,以及一个 dialogFragment
从 fragment 中调用。
我想从 fragment 中的对话框中调用一个方法。我使用以下方法做到了这一点:
((ActivityName) getActivity()).fragmentName.methodInFragment();
我一直在尝试几种不同的解决方案,最后想到了这个。我明白发生了什么,但我不明白 (ActivityName)
在做什么。我的猜测是它将 getActivity
转换为实际的 Activity 类型,这样我就可以从它调用东西(比如我在其中声明的 fragment 的实例)。那是正在发生的事情还是我离开了?
这是否与我访问我在 XML 中定义的 TextView
时使用的类型相同。例如TextView myTextView = (TextView) findViewById(R.id.thetextview);
?
最佳答案
这叫做转换。 getActivity()
返回一个 Activity 对象,使用 ((ActivityName)getActivity())
您指定 getActivity()
实际上是一个对象ActivityName
类的。转换为特定类型允许您访问不属于父类(super class)的成员和方法 (public
)。如果您定义了错误的类型转换,您将得到一个 ClassCastException
。
Is this the same type of thing that's use when I am accessing a TextView I've defined in XML. e.g. TextView myTextView = (TextView) findViewById(R.id.thetextview);?
是的。 findViewById
返回一个View
,而你告诉View
实际上是一个TextView
。如果不是 TextView
,R.id.thetextview
是 ImageButton
的 id,将其转换为 TextView
会导致 ClassCastException
关于android - ((ActivityName) getActivity()).FragmentName.methodInFragment(); - (ActivityName) 在做什么,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059647/
我这里有三个项目:一个名为 ActivityName 的基本 Activity 、一个从名为 FragmentName 的 Activity 调用的 fragment ,以及一个 dialogFrag
Activityname.this() 和 this 在安卓中有什么区别吗? 我正在尝试使用对话框中的按钮从同一 Activity 中打开一个 Activity ?我在 Intent 中使用 getA
我正在修复我 friend 的代码并且感到困惑。 我的 friend 想要获取输入的文本(在 EditText 中)。看起来很容易,对吧?好吧,但不是用户输入,而是他收到以下警告/错误: 老实说,我不
我的应用在开始时崩溃,并产生以下错误。 The Google Play services resources were not found. Check your project configurat
我为我的第一个(实际上是为了测试)Android 应用程序创建了以下 Activity 。但它给我带来了一个错误,我找不到如何修复,所以请你帮我一下吗? package com.app.myappli
当我编译我的项目时,我遇到了这种错误; Error:Android Dex: [OdeAl] Unable to execute DX Error:Android Dex: [OdeAl] com.a
我不知道它们之间的区别,我有时使用 this,有时使用 activityame.this,有时 getAplicationContext() 当 android 需要 上下文通过。 最佳答案 this
我是一名优秀的程序员,十分优秀!