问题标签 [android-fragmentactivity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9595 浏览

android - 调用 onCreateView() 之前出现“找不到片段 id 的视图”错误

这与几篇文章有关,但我没有看到任何解释视图层次结构中视图创建顺序的内容(静态 - xml 和动态 - 在代码中)。

我有一个 FragmentActivity 托管一个 Activity 和一个 Fragment。在调用片段的 onCreateView 之前,我从没有为片段创建的视图中收到运行时错误。很难确定调用方法是什么找不到视图,因为调试器在单步执行期间似乎无法找到正确的行号。

我无法正确附加源以查看 FragmentManager 内部,因为 dl'd 源和 .jar 之间似乎不匹配

我在 StreamingActivity.onCreateView 中放置了一个 Log.i 条目,并且在此之前发生了错误。

这是相关的LogCat:

我的java文件片段:

我的片段:

我的布局文件:“res/layout/main.xml”

和我的 FragmentActivity 的“activity_fragments_main.xml”

从其他 Stackoverflow 线程收集的 id not found 错误的可能原因:

  • FragmentActivity 的 onCreate() 方法的 setContentView() 布局错误。

我检查了一下,我的 xml 文件都在那里。也许存在语法错误或缺少链接资源,但我看不到它。我知道 HierarchyViewer 将是调试 UI 的有用工具,但我无法让它工作。

  • 传递给 FragmentTransaction.add 的 id 必须是 setContentView 中指定的布局的子级。

我的 FragmentActivity 的 onCreate @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fragments_main);

我的 Fragment 的 onCreateView

我假设 LayoutManager 为容器传递了正确的值,即在 FragmentActivity 的 setContentView() 中设置的值。但无论如何,我们永远无法到达那里。logCat 中的错误发生在我们进入 onCreateView() 之前。

我唯一能想到的 atm 是在 setContentView 之后和 StreamingActivity 之前调用的 startupActivity(它是封闭的第三方)将内容视图设置为 R.layout.activity_fragments_main 之外的东西,这不是我的片段视图的父级。

问题似乎源于这样一个事实,即虽然 Activity 有 setContentView 可以随时调用,但 Fragment 只有 onCreateView() ,它在启动片段的片段事务之后被调用。

为什么以及在调用 onCreateView() 之前尝试访问片段视图的原因是什么?

达科拉姆

0 投票
1 回答
1017 浏览

android - Android 应用程序中的异常

我正在为平板电脑和手机开发一个安卓应用程序。我编写了自己的片段类及其相应的活动。但是当我运行应用程序时,我收到以下错误。

这是我的 EveryoneAdapter 类

我的 GridFragment 课程是

我的 IndividualViewFragment 类在下面

我的清单文件在下面

请帮我。我无法找到问题所在。

问候, 拉克什

0 投票
1 回答
255 浏览

java - 了解片段活动

我有一个应用程序,它只是一个计时器,主要活动中有一大堆特殊方法。这很好用,没有问题。现在,我让它工作了,我试图将它包含在一个更复杂的应用程序中,我将通过片段在许多地方插入计时器。

我应该在我的片段活动中包含我所有的特殊方法吗?IE:

还是我应该将它们包含在我的主要内容中?

我之所以问是因为我已经尝试了两种方法,而片段活动方式在 java 中给了我错误,但是将它们放在我的 main 中给了我在运行时的错误。基本上我有一个作为独立应用程序运行良好的计时器,但我正在尝试将其转换为片段,以便可以将其插入应用程序中的多个位置。

“特殊方法”的例子: 我在布局中取一个视图,并根据计时器上输入的新数字对其进行更新。这些方法要求在使用之前先对视图进行膨胀。

注意:我遇到的运行时错误是 nullPointerExceptions。

0 投票
1 回答
99 浏览

java - 在片段中执行动作

我在理解片段如何与活动交互时遇到了一些麻烦。

我的主要活动是添加一个片段。调用的片段类在这里:

正在膨胀的布局内部有一个 textView,但在片段类内部我无法“访问”它。

为什么我不能TextView text = (TextView) findViewById(R.id.pwd_status);在return语句下面添加?

这对我来说很有意义,因为如果我想在一堆地方添加计时器并以编程方式更改一件事,它会随处改变。希望这是有道理的。

谢谢

回答:

我只是保持我的 onCreateView 相同并添加了 onActivityCreated。然后我就可以像往常一样做所有事情了。

0 投票
3 回答
879 浏览

java - 在片段之后添加方法

我有一个可以在任何地方添加的“计时器”片段。在片段中,我以编程方式更改了一个 textView,它运行得很漂亮。我的问题是,在它下面的另一种方法中使用构造函数膨胀的布局中的视图(?不确定这是否是正确的术语)。

所有这些代码都可以正常工作,但是当我尝试添加此方法时:

我在 findViewById 下得到一条红线The method findViewById(int) is undefined for the type Timer_fragment

我想过在我所有的方法中夸大视图而不是返回它们,但这肯定会以某种方式影响性能,对吧?

刚刚尝试在使用视图之前膨胀布局,但我收到一个错误,inflatercontainer说它们无法解决。

我这样做对吗?

0 投票
2 回答
2136 浏览

java - 在android中不断“检查”片段可见性/键盘可见性的最佳方法

我想不断检查片段是否可见或更好。如果键盘存在于 Android 应用程序中。解决这个问题的最佳方法是什么?

我对活动生命周期不太熟悉,但我希望这是正确的方法。下面的代码是用 OnCreate 方法编写的。我需要它不断运行。

0 投票
2 回答
12827 浏览

android - 从带有 Intent 的 Activity 启动 FragmentActivity

每次尝试使用 Intent 从 Activity 启动 FragmentActivity 时,我都会感到力不从心。这是来自活动的代码:

这是logcat:

OrgHome.class 在清单中正确定义。这里发生了什么?

0 投票
1 回答
399 浏览

android - Android:一个布局中的两个 FragmentActivity

是否有可能在一个布局中托管两个 FragmentActivity?

例如,如果我有以下布局,我可以在 container1 中托管一个 FragmentActivity,在 container2 中托管一个 FragmentActivity 吗?:

如果这不可能,我是否可以有一个 FragmentActivity 加载两个不同的片段并在 container1 中显示一个,在 container2 中显示一个?

0 投票
3 回答
1993 浏览

java - 我的 onClick 方法只有 80% 的时间有效

我有一个奇怪的视图设置fragmentseditText基本上我需要在每次特定editText视图为clicked.

这有效,但只有大约 80% 的时间。

其他 20% 的失败时间,如果再次单击它,它会 100% 隐藏。

就好像你第一次敲击它时,它还没有来得及反应,在键盘弹出之前将片段隐藏起来。

我的 xml 将 Clickable 设置为 true,并将 onClick 设置为隐藏。

我的java在这里:

有任何想法吗?

0 投票
1 回答
3681 浏览

java - 在另一个片段活动中删除片段

我有一个实现 的片段,onClickListener然后onClickListener尝试删除一个片段。

badFragment我在in下得到一条红线transaction.remove(badFragment);。我最好的猜测是因为它无法分辨那个片段是什么/它在哪里。

我将如何找到该片段,以便将其删除?

我试过 findFragmentId(badFragment); 但它不起作用。

如果您可以让我知道您在哪里找到此方法,则可以加分。因为我不擅长在 Android Docs 中查找内容。