【问题标题】:Why am I getting an error?: parameter t has incompatible upper bounds: Preference and Preference为什么我会出错?:参数 t 的上限不兼容:Preference 和 Preference
【发布时间】:2019-11-03 20:37:15
【问题描述】:

我无法解决错误的问题:

incompatible types: no unique maximal instance exists for type variable T with upper bounds com.velocat.cmap.Preference,androidx.preference.Preference
        Preference preference = findPreference("button");
                                              ^
  where T is a type-variable:
    T extends androidx.preference.Preference declared in method <T>findPreference(CharSequence)

SettingsFragment.java

import android.os.Bundle;
import android.preference.Preference;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.preference.PreferenceFragmentCompat;

public class SettingsFragmentActivity extends PreferenceFragmentCompat {

    Preference preference;
    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {

        addPreferencesFromResource(R.xml.setting);

        Preference preference = findPreference("preference1");
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = super.onCreateView(inflater, container, savedInstanceState);

        return view;
    }

}

buld.gradle 的一部分

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.navigation:navigation-fragment:2.1.0'
    implementation 'androidx.navigation:navigation-ui:2.1.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'androidx.preference:preference:1.1.0'

}

xml/settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <SwitchPreference
        android:defaultValue="false"
        android:key="preference1"
        android:title="test" />
</PreferenceScreen>

我在搜索中重新阅读了所有可能的内容,但没有找到问题的解决方案。 有谁知道如何摆脱这个错误?

如果您对此主题进行任何澄清,我将不胜感激。

【问题讨论】:

    标签: java android android-fragments android-preferences


    【解决方案1】:

    我猜你输入错了Preference应该是

    import androidx.preference.Preference
    

    当您扩展 androidx.preference.PreferenceFragmentCompat 并根据 docs 它返回时

    androidx.preference.Preference
    

    【讨论】:

      【解决方案2】:

      只需导入这些库

      导入androidx.preference.Preference;

      导入 androidx.preference.PreferenceFragmentCompat;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-13
        • 1970-01-01
        • 2015-11-17
        • 1970-01-01
        相关资源
        最近更新 更多