Mac*_*ver 6 xml android android-preferences kotlin preferencefragment
在按照本教程创建首选项屏幕之后,膨胀类“ androidx.preference.PreferenceScreen”似乎存在问题。为什么在res/xml
文件夹中声明了我的首选项并且已将必需的依赖项添加到此项目后,为什么找不到它?
我的应用程序的minSdkVersion是24。
错误膨胀类(未找到)androidx.preference.PreferenceScreen
依存关系
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:preference-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Run Code Online (Sandbox Code Playgroud)
res / xml / preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.preference.PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="preference_a"
android:defaultValue="false"
android:title="Preference A" />
</androidx.preference.PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
活动布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/settings_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MySettingsActivity" />
Run Code Online (Sandbox Code Playgroud)
活动课
class MySettingsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
supportFragmentManager
.beginTransaction()
.replace(R.id.settings_container, MySettingsFragment())
.commit()
}
}
Run Code Online (Sandbox Code Playgroud)
片段类
class MySettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.app_preferences)
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是AndroidX,则应更新依赖项:
implementation "androidx.legacy:legacy-preference-v14:1.0.0"
implementation "androidx.preference:preference:1.0.0"
Run Code Online (Sandbox Code Playgroud)
遗产是古老的com.android.support:preference-v14
,另一个是古老的com.android.support:preference-v7
。
如果您不使用AndroidX,而是使用Android支持库,请不要将AndroidX小部件导入XML。
归档时间: |
|
查看次数: |
4285 次 |
最近记录: |