Android:如何获取Fragment的视图

2024-01-07

在课堂上,我以编程方式添加一个片段。

该片段包含一个按钮,我想要一个 onClick 实现。

这是我的课程:

public class ShareProduct extends SherlockFragmentActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.share_product);

        FragmentManager fragmentManager = getSupportFragmentManager();
        final FragmentTransaction fragmentTransaction = fragmentManager
                .beginTransaction();

        ProductFragment1 fragment = new ProductFragment1();
        fragmentTransaction.add(R.id.share_product_parent, fragment);
        fragmentTransaction.commit();

        Button done_button = (Button) fragment.getView().findViewById(
                R.id.done_product_1);
        done_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {

                ProductFragment2 fragment = new ProductFragment2();
                fragmentTransaction
                        .replace(R.id.share_product_parent, fragment);
                fragmentTransaction.commit();
            }
        });
    }
}

我的 ProductFragment1 类是:

public class ProductFragment1 extends SherlockFragment {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater
                .inflate(R.layout.share_product_1, container, false);
        return view;
    }
}

我的主类使用的布局是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/share_product_parent"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="right|center_vertical"
    android:orientation="horizontal" >

</RelativeLayout>

我的 ProductFragment1 使用的布局是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="25dp" />

    <EditText
        android:id="@+id/et1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv1"
        android:textSize="25dp" />

    <Button
        android:id="@+id/done_product_1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/et1"
        android:text="Done" />

</RelativeLayout>

问题是:

我在主类中的这一行收到 NullPointerException:

Button done_button = (Button) fragment.getView().findViewById(R.id.done_product_1);
done_button.setOnClickListener ....

当我寻找什么时getView()在片段返回上。我发现它返回的视图来自onCreateView();

我检查了它不返回 null。

谢谢


你在这里走错了路。你得到NPE因为Fragments视图尚未创建。Fragments也有一个生命周期,就像Activities.

你应该做的是分配OnClickListener在你的里面Fragments onViewCreated()方法。从那里......您应该创建一个回调并通知您的托管Activity事件的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何获取Fragment的视图 的相关文章

  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • Android 后退按钮无法与 Flutter 选项卡内的导航器配合使用

    我需要在每个选项卡内有一个导航器 因此当我推送新的小部件时 选项卡栏会保留在屏幕上 代码运行得很好 但是 android 后退按钮正在关闭应用程序而不是运行 Navigator pop import package flutter mate
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 当文本输入聚焦在 React Native for Android 的底部工作表上时,视图移出屏幕

    我正在使用图书馆 https github com osdnk react native reanimated bottom sheet https github com osdnk react native reanimated bott
  • Adobe 是否为其 PDF 阅读器提供 Android SDK 或 API? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在我们的应用程序内的视图中显示本地 PDF 文件 在 Android 4 03 下的平板电脑上运行 目前 我们将 Adob eR
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 带有 EditText 和 Spinner 的对话框

    我有一个按钮 单击后会弹出一个对话框 我希望对话框有一个EditText and a Spinner对话框内 我不知道如何设置它的视图 我有一个代码AlertDialog它有效 只是EditText and Spinner我需要将其放入其中
  • 获取当前 android.intent.category.LAUNCHER 活动的实例

    我创建了一个库项目 并在多个应用程序之间共享 我实现了一个简单的会话过期功能 该功能将在一段时间后将用户踢回到登录屏幕 登录屏幕活动是我的主要活动 因此在清单中它看起来像这样
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • Matlab/Octave中所有内置符号列表

    在 Mathematica 中 我们可以获得所有内置函数的名称 例如 List通过执行命令 Names List 此外 Names context 列出指定上下文中的所有符号 例如 Names Global 给出所有内置符号的名称 以及用户
  • 在 C++ 中使用 C# 接口或在 C# 中使用 C++ 接口

    我正在开发一个解决方案 其中有一个必须由 C 解决方案和 C 解决方案使用的接口 C 语言 我想知道 实现这一目标的最佳方法是什么 我在 C 项目中使用的 C 接口 我将在 C 项目中使用的 C 接口 您还可以指示我应该如何进行最佳解决方案
  • 张量流中的Python_io

    我在使用张量流时遇到问题 我想用TFRecordWriter 如下 with tf python io TFRecordWriter testing filename as tfrecord writer do sth 但我收到错误 Att
  • 如何求多个矩阵中对应元素的最大值?

    我有四个具有相同维度的矩阵 比方说 A 1 2 5 4 2 9 B 4 5 9 8 0 1 C 5 3 9 0 4 0 D 5 9 1 0 9 3 如何求四个矩阵中所有对应元素的最大值 在我的示例中 结果应如下所示 maxABCD 5 9
  • 如何在matlab中为条形图添加数据标签

    例如 代码 x 3 6 2 9 5 1 bar x 为此 我需要在每个栏的顶部添加数据标签 我知道我必须使用 TEXT 关键字 但我不知道如何实现它 这是一个简单的解决方案text x 3 6 2 9 5 1 bar x ylim 0 ma
  • 批量更新 Jenkins 项目的最佳方法是什么?

    我们有数百个 Jenkins 项目 大部分是从几个模板创建的 通常需要对所有项目进行相同的更改 例如今天我需要添加一个构建后步骤以在最后删除工作区 接下来 我需要更改将构建结果复制到 Nexus 存储库的共享驱动器的步骤 将此类批量更改应用
  • VSCode Intellisense 在 Javascript 代码上奇怪的自动完成

    我刚刚使用 VSCode 编写 JS 文件时遇到了一些奇怪的行为 看到我正在尝试访问hasOwnProperty 蓬松物体上的方法 VSCode 不会自动完成或建议我的代码行中的任何内容 此时我已经认为我做错了什么 并且我可能无法通过我的对
  • 使用jquery解析部分html字符串

    I use ajax 从我的服务器获取一些 HTML 页面 返回包含完整的 HTML 结果 但我只对该文档中的一个非常具体的 div 感兴趣 唯一给出的事情是我的 ajax success 函数返回一个 JSON 对象 我制作了一个 PHP
  • 如何在 Flask 中缓存大型机器学习模型?

    这是我面临的情况 我刚刚编写了一个 Flask 应用程序 人们可以输入他们想要的文本评论 我的应用程序将从我们的数据集中返回最相似的评论 所以基本上这是一个 NLP 项目 机器学习模型已经训练好了 现在的问题是该模型大约有 2 5GB 每次
  • 替换二维数组的列值中的子字符串

    我正在尝试使用str replace 删除 我的 出于value4数组数组中的元素 然而 str replace my myarray 并没有改变任何东西 Does str replace 不适用于二维数组 我的示例数据和编码尝试 arra
  • TransactionScope/SqlTransaction 超时扩展

    一旦事务开始 是否可以延长事务的超时 使用 SQL Server 超时对于 SQL Server 来说是 外部 的 因此 SQL Server 无法影响它 所以不幸的是 不
  • 如何将字典绑定到gridview?

    是否可以自动将字典绑定到 Gridview 我最接近的是 Dictionary
  • 浏览器是否跟踪活动计时器 ID?

    浏览器是否跟踪活动setInterval and setTimeout身份证 或者这完全取决于开发人员来跟踪 如果它确实跟踪它们 是否可以通过 BOM 访问 由开发人员来跟踪 您可以通过使用 setTimeout setInterval 函
  • bootstrap 3将文本内容换行在div内以进行水平对齐

    My post title here could be misleading first have a look at HTML i have currently 正如您所看到的 每一列的文本内容都会溢出到下一列 其次 它们中的每一个都不是
  • UITableViewCell 中的 UILabel 位置第一次尝试失败

    我刚刚开始接触 iOS 开发 所以我希望我能在这里获得正确的详细信息 我有一个UILabel 加载到通过 xib 创建的表格单元格中 实际上有几个标签 其中之一的长度不同 因此包装高度也不同 heightForRowAtIndexPath等
  • 为什么 jQuery UI 不隐藏具有隐藏父元素的元素?

    我一直在开发一个单页应用程序 并注意到我的下拉菜单有时在本应隐藏的情况下保持打开状态 我调查了为什么会发生这种情况 并发现如果父元素被隐藏 则使用扩展的 jQuery UI 隐藏元素hide功能毫无价值 This fiddle http j
  • 使用 rlang 创建带有双花括号 {{ 的函数(data.table 结构)

    是否可以使用 rlang 结构来执行函数data table 例如 没有数据表 library data table library dplyr iris 1 1 2 NA iris 3 3 4 NA test dt lt function
  • asynsPipe 生成 null 作为第一个值

    当在 Angular 中使用异步管道时 不会立即触发事件 http 请求或任何有延迟的可观察值 得到的第一个值是null为什么会发生这种情况 如何避免这种情况
  • 数据框的减法运算

    我有2个数据框df1 and df2 df1 lt data frame c1 c a b c d c2 c 1 2 3 4 df2 lt data frame c1 c c d e f c2 c 3 4 5 6 gt df1 c1 c2
  • Android:如何获取Fragment的视图

    在课堂上 我以编程方式添加一个片段 该片段包含一个按钮 我想要一个 onClick 实现 这是我的课程 public class ShareProduct extends SherlockFragmentActivity protected