标签: dialog-preference

onUserInteraction在DialogPreference中不起作用

预计onUserInteraction正在为任何用户交互调用.它运作良好PreferenceActivity.但是,当a DialogPreference弹出时,onUserInteraction即使存在用户交互,例如触摸事件,也不再调用.

似乎 DialogPreference并非唯一的情况.无论何时Dialog显示,它都不会报告用户与活动的交互.

但如果我真的需要它,我该怎么办呢.谢谢.

android dialog dialog-preference

5
推荐指数
2
解决办法
3178
查看次数

如何在 Preference 中制作自定义 Dialog Preference

我在这个论坛上四处搜索,但没有得到我真正需要的东西。我需要在 Preference 中有一个自定义 DialogPreference 但那个 DialogPreference 不应该有我讨厌的蓝条标题,而且我已经为其他活动准备了一个活动标题模板 xml 文件,它可以用作自定义活动标题。所以我想使用它在这个对话框中出现。另外我想要自定义首选项文件名,但这里的问题是它创建了两个首选项文件名,一个用于首选项,另一个用于 DialogPreference

但我在这里发现了类似的东西Using EditTextPreference with 2 user input fields

    <com.yourdomain.YourDialogPreference
        android:title="Title"
        android:summary="Summary"
        android:key="dialog_preference"/>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经做到了这一点。DialogPreference 打开良好,但如何将我的标题模板附加到此自定义 DialogPreference

android android-preferences sharedpreferences listpreference dialog-preference

5
推荐指数
1
解决办法
1万
查看次数

如果条件不满足,请不要关闭DialogPreference onClick

我需要在PreferenceActivity中使用AutoCompliteTextView,因此我扩展了DialogPreference.我的auto-complite期待(帮助)用户输入国家/地区名称.如果用户按"取消"或没有输入任何值,我会很好,但是我想确保在关闭对话框之前输入正确的名称.我试图覆盖onClick as


@Override
public void onClick(DialogInterface dialog, int which) {
        if (!validator.isValid(textView.toString())) {
            onDialogClosed(false);
        } else {
            //do something here
            super.onClick(dialog, which);
        }
    }
Run Code Online (Sandbox Code Playgroud)

还有onDialogClosed


@Override
    protected void onDialogClosed(boolean positiveResult) {
        if (validator.isValid(textView.toString())) {
            //do something here
            super.onDialogClosed(positiveResult);
        }
    }
Run Code Online (Sandbox Code Playgroud)

android onclick dialog-preference

4
推荐指数
2
解决办法
3588
查看次数

如何在PreferenceActivity中运行Preference类中的函数

我们可以在PreferenceActivity中设置很多类型的Preference类型.一旦点击某个偏好,我试图运行一个特定的功能.有没有办法覆盖preferenceScreen或editText onClick?

java android preferenceactivity dialog-preference

4
推荐指数
1
解决办法
1467
查看次数

为什么自定义DialogPreference不会在onSharedPreferenceChanged侦听器上触发?

我试图在首选项中设置对话框首选项,用户只需单击"正向"按钮即可触发某些操作.(清除数据库?否|是)

public class MyDialogPreference extends DialogPreference {

    public MyDialogPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onDialogClosed(boolean positiveResult) {
        super.onDialogClosed(positiveResult);
        Log.d(MainActivity.TAG, "# onDialogClosed: " + positiveResult);
    }

}
Run Code Online (Sandbox Code Playgroud)

我实际上并不想坚持任何东西,只是触发onSharedPreferenceChanged监听器,所以我可以在活动中处理它.但我无法弄清楚如何触发它

//解

@Override
protected void onDialogClosed(boolean positiveResult) {
    super.onDialogClosed(positiveResult);
    if(positiveResult) {
        persistBoolean(!getPersistedBoolean(true));
    }
    Log.d(MainActivity.TAG, "# onDialogClosed: " + positiveResult);
}
Run Code Online (Sandbox Code Playgroud)

android listener sharedpreferences dialog-preference

4
推荐指数
1
解决办法
2008
查看次数

没有调用onBindDialogView - 为什么?

我想实现ListPreference的子类,而其构造被称为(在显示它),它被覆盖的onBindDialogView不是.

  public MyListPreference(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
    Log.v(TAG, "MyListPreference constructed.");
  }


  @Override
  protected void onBindDialogView(View view) {
    super.onBindDialogView(view);
    Log.v(TAG, "onBindDialogView called");    
  }
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我错过了什么?

更新:我在onCreateDialogView()中植入了一条日志消息,它被调用了.

只有onBindDialogView()不会被调用.

为什么?调用此回调的条件是什么?

android listpreference dialog-preference

4
推荐指数
1
解决办法
1085
查看次数

PreferenceActivity 中的 PreferenceDialog - 目标片段必须实现 TargetFragment 接口

我正在尝试在首选项活动中实现 DialogPreference。我实现了它,但似乎 setTargetFragment 被标记为已弃用。

在此输入图像描述

这是我的旧代码:

override fun onDisplayPreferenceDialog(preference: Preference?) {
            val clearStatsDialog = preference as? DialogPreferenceClearStats
            if (clearStatsDialog != null) {
                val dialogFragment = DialogPrefCompat.newInstance(clearStatsDialog.key)
                dialogFragment.setTargetFragment(this, 0)
                dialogFragment.positiveResult = {
                    Toast.makeText(activity, "yes", Toast.LENGTH_LONG).show()
                }
                dialogFragment.show(this.parentFragmentManager, null)
            } else {
                super.onDisplayPreferenceDialog(preference)
            }
        }
Run Code Online (Sandbox Code Playgroud)

我想用 setFragmentResultListener 替换它,但我总是收到“目标片段必须实现 TargetFragment 接口”异常。

有人能帮我吗?

这是完整的代码:


import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.util.AttributeSet
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.DialogPreference
import androidx.preference.Preference
import androidx.preference.PreferenceDialogFragmentCompat
import androidx.preference.PreferenceFragmentCompat
import com.workout.intervaltimer.R
import com.workout.intervaltimer.util.WorkoutTimerUtil


class DialogPreferenceClearStats(context: Context, …
Run Code Online (Sandbox Code Playgroud)

preferences dialog-preference kotlin

4
推荐指数
1
解决办法
886
查看次数

如何禁用外部触摸以隐藏DialogPreference

我正在开发一个自定义DialogPreference.

当用户在对话框外单击时,它会被取消,我需要避免这种情况.

我知道Dialog有setCanceledOnTouchOutside(boolean cancel)我需要的方法,但DialogPreference没有.

onBindDialogView我尝试:

getDialog().setCanceledOnTouchOutside(true);
Run Code Online (Sandbox Code Playgroud)

但是getDialog()回归null.

我能怎么做?有人能帮我吗?

这是我的班级:

public class UpdatePreference extends DialogPreference implements View.OnClickListener{


    public UpdatePreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        setPersistent(false);
        setDialogLayoutResource(R.layout.update_dialog_layout);
        setPositiveButtonText("");
        setNegativeButtonText("");
    }

    @Override
    protected void onBindDialogView(View view) {
        super.onBindDialogView(view);   
        //init my components
    }

    @Override
    protected void onDialogClosed(boolean positiveResult) {
        super.onDialogClosed(positiveResult);

    }

}
Run Code Online (Sandbox Code Playgroud)

android dialog-preference

2
推荐指数
1
解决办法
1946
查看次数

Android首选项中的是或否确认

我需要在"设置"中实现"重置"选项.单击该设置时,将打开一个简单的对话框,要求确认.

我已经看过了,DialogPreference但似乎无法在任何地方找到一个好的解决方案或教程.有人可以帮帮我吗?我是初学者,想法甚至代码都会非常有帮助,谢谢.

android android-preferences dialog-preference

2
推荐指数
2
解决办法
1850
查看次数