我在 android 中收到错误“无法访问的语句”返回

2024-03-31

为什么我会收到第 92 行是无法访问的语句的错误? 错误在这一行:

final RadioButton r1 = (RadioButton) getView().findViewById(R.id.radio1);

Code:

public class TabFragmentA extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        if (container == null) {
            return null;
        }

        return (RelativeLayout) inflater.inflate(R.layout.tab_layout_a, container, false);


        final RadioButton r1 = (RadioButton) getView().findViewById(R.id.radio1);  //the error is here
        final RadioButton r2 = (RadioButton) getView().findViewById(R.id.radio2);

        final ImageView iv1 = (ImageView) getView().findViewById(R.id.iv1); 
        final ImageView iv2 = (ImageView) getView().findViewById(R.id.iv2);

        iv1.setVisibility(View.INVISIBLE);
        iv2.setVisibility(View.INVISIBLE);

        r1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(r1.isChecked())
                {
                    r2.setChecked(false);
                    iv2.setVisibility(View.INVISIBLE);
                    iv1.setVisibility(View.VISIBLE);
                }
            }
        });

        r2.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(r2.isChecked())
                {
                    r1.setChecked(false);
                    iv1.setVisibility(View.INVISIBLE);
                    iv2.setVisibility(View.VISIBLE);
                }
            }
        });
    }
}

日志猫错误:

01-23 02:43:31.082    1903-1903/br.com.eddboytools.PreDim E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: br.com.eddboytools.PreDim, PID: 1903
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
            at br.com.eddboytools.PreDim.TabFragmentA.onCreateView(TabFragmentA.java:29)
            at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
            at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
            at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
            at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
            at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
            at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
            at android.view.View.measure(View.java:17430)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:875)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:447)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
            at android.view.View.measure(View.java:17430)
            at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
            at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
            at android.view.Choreographer.doCallbacks(Choreographer.java:580)
            at android.view.Choreographer.doFrame(Choreographer.java:550)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
01-23 02:43:31.094    1903-1915/br.com.eddboytools.PreDim I/art﹕ Background partial concurrent mark sweep GC freed 261(11KB) AllocSpace objects, 0(0B) LOS objects, 27% free, 1328KB/1840KB, paused 20.856ms total 51.174ms

我们不放return声明高于任何其他声明,除非return处于任何条件语句下。如果我们这样做,那么下面的所有语句将永远不会被执行(意味着它在所有情况下都将变得无法访问),这会导致您收到错误。

像这样做

public class TabFragmentA extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    RelativeLayout rootView = (RelativeLayout) inflater.inflate(R.layout.tab_layout_a, container, false);


    final RadioButton r1 = (RadioButton) rootView.findViewById(R.id.radio1);
    final RadioButton r2 = (RadioButton) rootView.findViewById(R.id.radio2);

    final ImageView iv1 = (ImageView) rootView.findViewById(R.id.iv1);
    final ImageView iv2 = (ImageView) rootView.findViewById(R.id.iv2);

    iv1.setVisibility(View.INVISIBLE);
    iv2.setVisibility(View.INVISIBLE);

    r1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if(r1.isChecked())
            {
                r2.setChecked(false);
                iv2.setVisibility(View.INVISIBLE);
                iv1.setVisibility(View.VISIBLE);
            }
        }
    });

    r2.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if(r2.isChecked())
            {
                r1.setChecked(false);
                iv1.setVisibility(View.INVISIBLE);
                iv2.setVisibility(View.VISIBLE);
            }
        }
    });
return rootView;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我在 android 中收到错误“无法访问的语句”返回 的相关文章

  • 检测正在插入的设备

    我希望能够检测设备是否已插入 我希望能够像查询连接状态一样进行查询 这可能吗 或者我是否需要创建一个监听电池事件的广播接收器 显然是ACTION BATTERY CHANGED http developer android com refe
  • 是否仍然建议使用 AsyncTask 在后台加载 listView 项目?

    背景 我听说有一些在后台加载数据的新解决方案比 AsyncTask 更值得推荐 例如loaders http developer android com reference android content Loader html 问题 As
  • 如何增加 Gradle 守护进程的最大堆大小?

    签署 apk 时 我收到以下消息 To run dex in process the Gradle daemon needs a larger heap It currently has 1024 MB For faster builds
  • 强制关闭导致HTTP实体可能不为空

    这里是发送数据 Http 的完整代码 asynctask private class MyAsyncTaskPupuk extends AsyncTask
  • 在 Android 上检测已接听的拨出电话

    我知道这个问题已经被问过很多次了 但没有答案 但我仍然希望有人终于解决了这个问题 问题 我有一台运行 Android 2 3 的未 root 设备 我需要创建一项服务 打电话 等待呼叫被应答 接听电话后挂断电话 有超时 和其他许多人一样 我
  • Android异步服务调用策略

    这是场景 客户端对服务进行远程调用 返回 void 并提供 回调对象 服务在后台线程上执行一些长时间运行的逻辑 然后使用回调对象来触发以太成功或失败 因为这些操作视觉元素 执行 Activity runOnUiThread 块 该场景运行良
  • Android:NotificationCompat.MediaStyle 操作按钮不执行任何操作

    我有一个简单的 Android 应用程序 其中包含一个Activity and a Service源自于MediaBrowserServiceCompat 我已成功将其设置为通过使用播放我的主要活动中的音频MediaBrowserCompa
  • 获取包含位图支持的画布的 Android 视图上的点的像素颜色值

    我正在尝试找出获取给定点上像素颜色值的最佳方法View http developer android com reference android view View html 我可以通过三种方式写入视图 我设置了背景图像View setBa
  • 如何编写 adb jdwp + adbforward 脚本?

    我正在尝试使用命令行和脚本工具调试 Android 应用程序 我已经受够了 Android Studio 占用我的 CPU 要连接到我的应用程序 我需要adb jdwp获取 pid 然后adb forward tcp 8700 jdwp
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 错误:类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter

    我已尝试一切方法来消除此错误 但它不断出现 Class kotlin reflect jvm internal FunctionCaller FieldSetter can not access a member of class com
  • 如何从Android webview下载文件?

    我下面的代码可以很好地加载 url 页面 并且在搜索歌曲后 当我单击下载链接时 它崩溃了 关于如何让下载管理器与网络视图一起工作的教程并不多 我究竟做错了什么 import java io File import android app A
  • 可下载字体例外

    我决定使用可下载字体 https developer android com guide topics ui look and feel downloadable fonts html在我的项目中 IS 按照指南中的建议实施了所有内容 当我
  • 调用属于Fragment的Activity的函数

    我正在与多个Fragments在 Android 下 我对如何从嵌入式应用程序发送和接收数据感到困惑 为了简单的解释 我有一个ListFragment and a MapFragment使用解释的方法here https stackover
  • 安卓独立包

    我有一个很大的 UI 大约 20 25 个屏幕 我应该如何组织我的代码 我应该按功能分成不同的包吗 我是否应该为所有 UI 类创建一个包 然后创建子包进行组织 或者我不应该创建单独的包并组织到文件夹中 任何帮助将不胜感激 当您创建文件夹时
  • 如何在没有 OpenCv Manager 的情况下运行 OpenCV 代码

    我正在使用 OpenCV4Android 版本 2 4 10 并在 Samsung Galayx GT I9300 上测试我的代码 我遇到的问题是 我必须从 Play 商店下载 Opencv Manager 以便我的 opencv 代码运行
  • 如何在 Android 中不使用 Intent 裁剪图像

    我正在尝试裁剪图像我使用了下面的代码 意图 i new Intent Intent ACTION PICK android provider MediaStore Images Media EXTERNAL CONTENT URI i pu
  • 使用Android Camera API,拍摄照片的方向始终未定义

    我使用相机API 拍摄的照片总是旋转90度 我想旋转它 所以首先我想知道图片的方向 这一点我被卡住了 我总是以两种方式得到未定义的方向 这是代码 Override public void onPictureTaken byte data C
  • 不幸的是 Project_Name 已停止

    我有一个简单的应用程序 您可以在文本视图中输入文本并按提交 它会在另一个活动中显示文本 然而 当我按下提交时 给我消息 不幸的是 发送已停止 我查看了SO上的其他线程 但是不幸的是 myfirstproject 在 java 中停止工作错误
  • 带有包含布局的导航抽屉布局

    我认为我的问题实际上很简单 但我不知道如何解决 有一个工作导航抽屉 代码如下

随机推荐

  • HTML 用 css 隐藏选择下拉箭头

    有没有一种好方法隐藏所有浏览器的默认下拉箭头 我知道这个问题已经被问过几次了 但似乎没有一个适用于所有浏览器的解决方案 而且它们看起来都不太好 几年过去了 不知道现在有没有好的解决方案 我能解决的最好方法是 select ms expand
  • htaccess 将index.php重定向到根目录(包括子域)

    我正在尝试将 index php 文件重定向到根 我四处搜索并发现了几个类似于以下内容的代码片段 RewriteCond THE REQUEST index php RewriteRule index php http www domain
  • 描述 Android 中的“top”命令

    我正在制作一个小型 Android 应用程序来显示当前的总 CPU 使用情况 例如 Windows 任务管理器中的 性能 选项卡 我使用 top m 1 n 1 d 1 来获取CPU使用率 但我并不真正理解 top 的结果 结果如下 Use
  • 以位图为背景在画布上绘制

    我正在尝试在我拍的照片上画画 绘图工作无需绘制图片 但如果我绘制位图 我只能看到位图 但会出现 n 绘图 我尝试了很多 但似乎没有任何帮助 提前致谢 private class myView extends View implements
  • 如何在没有 gulp/grunt/webpack 的情况下将 google-closure-compiler-js 用于 node.js 应用程序?

    The docs https github com google closure compiler js没有任何单独使用它的例子 但他们确实这样说 除非您使用 Gulp 或 Webpack 插件 否则您需要通过标志指定代码 jsCode 和
  • 使用 LINQ 在 JSON 中创建树层次结构

    我有一个随机顺序的一些名字的简单列表 是否可以编写单个 LINQ 语句来创建 JSON 中的树层次结构 以便根据以下示例所示的规则对它们进行分组 Input Banana Apple Cheery Lemon Orange Output A
  • 如何使用 MSVC 从 Windows 命令行构建 DLL

    我从事 C 语言工作已经有大约 20 年了 但我从未构建过 DLL 我一直更喜欢静态链接 我使用命令行 cl exe 等 和 gnumake makefile 来构建我的 Windows 应用程序 我现在想构建一个DLL 但我很困惑 最终
  • “字符串”类型的参数不可分配给字符串常量联合类型的参数[重复]

    这个问题在这里已经有答案了 我再次在这里寻求有关 Typescript 启发式的一些指导 我在编写类型保护时遇到了麻烦 因为 Typescript 在比较时想要太窄 考虑以下场景 或打字稿游乐场 https www typescriptla
  • Laravel 5 内存测试

    我正在通过 behat 为我的大型 Laravel 5 项目编写测试 我在 MySQL 中有一个 MySQL 数据库的测试副本 以及该数据库的一个播种器 它共享其他环境的一些播种器 所有这些都按预期进行 但是 我尝试切换到使用 sqlite
  • 是否需要事件总线注销

    我正在实施MVPAndroid 中的模式 我正在使用EventBus让知道P从活动 A 重新输入活动 B 发生的事情以更新 A 的视图 我在构造函数中将演示者注册到 EventBus 内部 但我没有看到任何可以取消注册它的地方 public
  • Git:虽然我已经完成了 git pull,但未能推送一些参考文献

    当我更改一些文件并尝试推送时 我开始出现 无法推送某些引用 错误 大多数说明都告诉我们先执行 git pull 我已经完成了 git 说一切都是最新的 知道如何解决该错误吗 我还开始收到 没有可用版本信息 消息 我不知道这与该错误有什么关系
  • 如何让java输出英文错误而不是其他语言?

    我的系统是中文的 当我的java程序出现错误时 可能会输出非英文的错误信息 无法阅读 Caused by java io IOException CreateProcess error 2 系统脮也禄碌陆指露 or IOException
  • Sails.js 单页应用程序 (SPA) — 将所有丢失/未使用的路由重定向到单个控制器操作

    我正在使用 Sails js 作为后端开发一个单页应用程序 SPA 我想要的只是将所有路由重定向到单个控制器操作 但是 当我执行以下操作时 config routes js module exports routes GET MainCon
  • 使用 Webpack 5 为 Next.js 配置文件加载器选项

    我正在尝试将 Nextjs 应用程序从 Webpack 4 升级到 Webpack 5 目前我使用file loader使用 next config js 中的选项 next config js module exports module
  • 在 Windows 8.1 平板电脑上的 Web 应用程序中捕获图像

    我即将开发一个在 Windows 8 1 平板电脑上运行的应用程序 一个重要的功能是能够单击按钮来访问相机来拍摄一些照片 理想情况下 我想将其创建为Web应用程序由于多种原因 许可证 跨平台 开发时间 没有本机应用程序经验等 而不是本机应用
  • Qt 和 unicode 转义字符串

    我使用信号和槽从服务器数据中获取数据 这是插槽部分 QString text this gt reply gt readAll 问题是 文本变量将是 unicode 转义 例如 u043d u0435 u043f u0430 u0440 u
  • 自上而下和自下而上编程[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 为什么我们说 C 等语言是自上而下的 而 Java 或 C 等 OOP 语言是自下而上的 这种分类对于软件开发有什么重要性吗 自上而下 的方
  • 如何在 Microsoft Office Word 中添加菜单项

    我尝试在 Microsoft Word 中创建一个右键菜单项this https i stack imgur com 6hXYg png post 这是我的代码 private void ThisAddIn Startup object s
  • 我如何从 calibrateCamera() 返回值中获取相机投影矩阵

    我正在尝试获得一个3x4用于三角测量过程的相机矩阵 但是calibrateCamera 仅返回3x3 and 4x1矩阵 我怎样才能得到3x4从那些矩阵中 提前致谢 calibrateCamera 返回您3x3 矩阵作为cameraMatr
  • 我在 android 中收到错误“无法访问的语句”返回

    为什么我会收到第 92 行是无法访问的语句的错误 错误在这一行 final RadioButton r1 RadioButton getView findViewById R id radio1 Code public class TabF