猿问

从 Android 中的 CheckBox 获取值

我想获取我的 Fragment 中的复选框的布尔值,并在 MainActivity 中获取该值。Fragment 与 Activity 相关。分段:


@Override

    public void onCreate (@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);

    }



}

活动


@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        getFragmentManager().beginTransaction().replace(android.R.id.content,

                new MyPreferenceFragment()).commit();

有人可以向我解释一下我是如何做到的。我刚刚尝试了一个接口,但我总是得到一个空错误,比如复选框未初始化

BIG阳
浏览 612回答 2
2回答

犯罪嫌疑人X

这是您绑定和获取复选框值的方式:Checkbox cb = (CheckBox)findViewById(R.id.yourCheckBox);boolean checkboxState = cb.isChecked();现在为了通过回调将该信息传递给您的活动,您可以执行以下操作:在您的片段中创建一个界面:public interface MyInterface {    public void onMyInterface(boolean b);}在 onAttach() 方法中包括以下内容:MyInterface myInterface;@Overridepublic void onAttach(Context context) {    super.onAttach(context);    myInterface = (MyInterface) context;}当您需要将数据发送到活动时,在您的片段中添加以下内容:sendBooleanCheckBox(checkBoxState);在哪里:public void sendBooleanCheckBox(boolean b) {    myInterface.onMyInterface(b);}在您的活动中:@Overridepublic void onMyInterface(boolean b) {    Log.d("TAG","check box value is: " + b);}确保您的活动实现了接口:public MyActivity implements OnMyInterface {...

慕哥9229398

我相信您正在使用PreferenceFragmentCompat。在文档中,我看到可以使用 findPreference(key) findPreference(java.lang.CharSequence)方法找到Preference 。findPreference 返回一个可以为您提供值的 Preference 对象。
随时随地看视频慕课网APP

相关分类

Java
我要回答