天天看點

android7.0 settings問題彙總

一、android cannot cast from preference to switchpreference

解決辦法:

導包錯誤,應導入:

import android.support.v14.preference.SwitchPreference;

import android.support.v7.preference.DropDownPreference;

import android.support.v7.preference.ListPreference;

import android.support.v7.preference.Preference;

import android.support.v7.preference.Preference.OnPreferenceChangeListener;

将自動導入的關于preference的包去掉,換成上面的包。

在實作需求時,布局檔案中需要加入switchpreference,代碼中實作後,編譯一直報cannot cast from preference to switchpreference錯誤,但是其他檔案用同樣的轉換,沒有問題,一直百思不得其解,最後本打算考慮直接copy一個代碼中的java檔案,然後改名,改方法,改内容,但是沒有這麼做。于是就在displaysettings.java(此java檔案裡面自動調節亮度用到了switchpreference),發現導入的包竟然是v14中的包,于是猜想應該是自己的導包有問題,看了自己寫的java檔案,關于preference導入的是系統自帶的包,而不是v14,v7裡面的包,于是替換導包,編譯通過。

添加Fragment時

2、 java.lang.ClassCastException: 不能将fragment轉換為activity

3、java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.Settings$FlashSettingsActivity}: java.lang.IllegalArgumentException: Invalid fragment for this activity: com.android.settings.FlashSettings

繼續閱讀