qq_17352261 2021-06-27 02:37 采纳率: 100%
浏览 25
已采纳

安卓开发Fragment无法得到控件



 
public class SettingsActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings_activity);
        if (savedInstanceState == null) {
            getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.settings, new SettingsFragment(),"root")
                    .commit();
        }

    }
    @Override
    protected void onStart() {
        super.onStart();
        Fragment RootFragment = getSupportFragmentManager().findFragmentByTag("root");
        assert RootFragment != null;
        View root_view = RootFragment.getView();
        assert root_view != null;
        CheckBox checkBox_have_authorized = findViewById(R.id.have_authorized);
        if (checkBox_have_authorized!= null)
            checkBox_have_authorized.setOnCheckedChangeListener(new CbxHaveAuthorizedListener());
        else
            Log.e("find error","checkBox_have_authorized is null");

    }
    class CbxHaveAuthorizedListener implements CompoundButton.OnCheckedChangeListener
    {
        @Override
        public void onCheckedChanged(CompoundButton button,boolean checked) {
            Toast.makeText(getApplicationContext(), "按钮被点击了", Toast.LENGTH_SHORT).show();
        }
    }
    public static class SettingsFragment extends PreferenceFragmentCompat {
        @Override
        public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
            setPreferencesFromResource(R.xml.root_preferences, rootKey);
        }
    }
}

请问checkbox一直是空是为什么?

  • 写回答

1条回答 默认 最新

  • 帅次 移动开发领域新星创作者 2021-06-27 13:00
    关注

    如果你的checkbox在fragment中,那你这个控件初始化就有问题,应该在fragment中,而不是activity。具体你可以参考下面这篇文章的第三节

    我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《Android-面试题Fragment详解》, 一起来围观吧 https://blog.csdn.net/g984160547/article/details/117930956?utm_source=app&app_version=4.9.3&code=app_1562916241&uLinkId=usr1mkqgl919blen

    如有帮助

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何使用chatgpt完成文本分类任务?
  • ¥15 已知速度v关于位置s的等式,怎么转化为已知位置求速度v的等式
  • ¥15 我有个餐饮系统,用wampserver把环境配置好了,但是后端的网页却进去,是为什么,能不能帮远程一下?
  • ¥15 R运行没有名称为"species"的插槽对于此对象类"SDMmodelCV"
  • ¥20 基于决策树的数字信号处理,2ask 2psk 2fsk的代码,检查下报错的原因
  • ¥20 python作业求过程
  • ¥15 wincc已组态的变量过多
  • ¥60 如图:直线与椭圆X轴平行,求直线与椭圆任意一点的相切坐标计算公式
  • ¥50 如何用python使用opencv里的cv::cudacodec::VideoWriter函数对视频进行GPU硬编码
  • ¥100 c#solidworks 二次开发 工程图自动标边线法兰 等折弯尺寸怎么标