import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import static android.R.attr.fragment;
public class AppPreferences extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_detail);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SettingsFragment settingsFragment = new SettingsFragment();
// fragmentTransaction.add(android.R.id.content, settingsFragment, "SETTING_FRAGMENT");
从这里开始的错误是settingsFragment,错误是错误:(25,94)错误:不兼容的类型:SettingsFragment无法转换为Fragment
FragmentTransaction setting_fragment = fragmentTransaction.add(android.R.id.content, settingsFragment, "SETTING_FRAGMENT");
setting_fragment.commit();
这是我的settingsFragment
public static class SettingsFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.app_preferences);
}
}
答案 0 :(得分:2)
public class AppPreferences extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_detail);
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_detail);
问题在于这里的代码和所以我只使用
getSupportFragment();
及其作品
getFragmentManager();
// FragmentManager fragmentManager = getSupportFragmentManager();
// FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SettingsFragment settingsFragment = new SettingsFragment();
FragmentTransaction setting_fragment;
setting_fragment = getFragmentManager().beginTransaction().add(android.R.id.content, settingsFragment, "SETTING_FRAGMENT");
setting_fragment.commit();
}
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.app_preferences);
}
}
}
答案 1 :(得分:1)
您应该使用(如果您想保持兼容性)支持v7兼容性库中包含的PreferenceFragmentCompat
。
PreferenceFragment
未包含在片段兼容性集中,因此将PreferenceFragment
更改为PreferenceFragmentCompat
就足以满足您的个体需求。
检查this。
希望有所帮助