如何使自定义首选项布局启动对话框片段并对Button做出反应?

时间:2018-08-21 18:24:09

标签: android android-fragments android-preferences preferences

我已经使用一个按钮和文本视图为首选项布局创建了自定义布局。如何在用户单击文本视图字段并在该字段上交互按钮时打开对话框片段?

这就是我想要的, 当切换按钮处于关闭状态时,用户无法打开对话框片段。一旦启用切换按钮,对话框片段将变为活动状态,用户可以编辑值并进行摘要更新。

enter image description here

Preference.xml

<com.example.app.Utils.CustomIPPreference
       android:key="@string/pref_manual_IpKey"
       android:title="Set Device Ip manually"
      android:summary="@string/default_ip" />

CustomIPPreference.java

public class CustomIPPreference extends Preference {

    public CustomIPPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        setLayoutResource(R.layout.custom_ip_device_select);
    }

    @Override
    protected void onBindView(View view) {
        LinearLayout layout = view.findViewById(R.id.ManualIPBOX_layout);
        SwitchCompat switchCompat = view.findViewById(R.id.manualIpToggle);

        layout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LogUtils.e("pref_manual_IpKey");
              CustomIpDialog customIpDialog = new CustomIpDialog();
                customIpDialog.show(getFragmentManager(), "Frag"); //getFragmentManager not found error 
            }
        });
        switchCompat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LogUtils.e("APP", "TOGGLE");
            }
        });
        super.onBindView(view);
    }

getFragmentManager在代码中给我错误。如果我使用对话框首选项,则无法在右侧添加切换按钮。如何使二者交互?

我找不到与此相关的任何参考。请帮帮我!

0 个答案:

没有答案