java - Android 中偏好 Activity 的 onclick 监听器

标签 java android android-activity android-preferences

我正在关注 this documentations创建一个设置页面。我根据文档创建了两个 java 类:

SettingsFragment.java:

public static class SettingsFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preferences);
    }
    ...
}

SettingsActivity.java

public class SettingsActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Display the fragment as the main content.
        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new SettingsFragment())
                .commit();
    }
}

在首选项中,我有一个键为 premium_support 的项目,我想为其创建一个点击监听器。

 <CheckBoxPreference
        android:key="@string/premium_support"
        android:title="Premium Support"
        android:summary="Purchase premium support"
        android:defaultValue="false" />

我无法在 fragment 中创建点击监听器,因为我在 SettingsActivity 中有我的应用内结算代码。我试过 this answer但似乎 findPreference 仅适用于 preferencefragment。

知道如何在 SettingsActivity 中实现点击监听器吗?

最佳答案

SettingsActivityonCreate()方法中:

Preference preference = findPreference("prefs_key");
preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
   @Override
   public boolean onPreferenceClick(Preference preference) {
       Toast.makeText(SettingsActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
       return true;
   }
});

关于java - Android 中偏好 Activity 的 onclick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37492025/

相关文章:

android - 如果它们依赖于语言环境,我应该如何在 Android 中存储 API URL?

java - 无法使用字符串作为选项卡名称

java - 对混合整数和字符串的 ArrayList 进行排序,同时保留字符串和整数的相对顺序

java - 鼠标离开时的 SWT MouseMove 监听器

android - 在 ListView 中加载图像的线程

android - 如何在从布局 : main. xml 初始化的类中调用 startActivityForResult

带操作栏的 Android 全屏 Activity

java - 在一次 Java 调用中从 Web 服务获取数据或下载文件

java - Intellij 中的调用树

android - 无法识别 Flutter Android 支持库