2016-11-07 60 views
0
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不能转换到碎片错误:(25,94)错误:不兼容的类型:SettingsFragment不能转换到碎片

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

尝试改变android.R.id.content到R.id.content – AbhayBohra

回答

0

您应该使用(如果你想保持兼容性)包含在支持V7的PreferenceFragmentCompat兼容性库。

PreferenceFragment不包含在片段的兼容性集合中,所以将PreferenceFragment更改为PreferenceFragmentCompat应该足够用于您的porpuses。

检查this了。

希望它可以帮助

+0

仍然不能正常工作 –

+0

同样的错误?有什么区别? @ThetruesAbdallah更新您的更改 – zozelfelfo

+0

'public static class SettingsFragment extends PreferenceFragmentCompat { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.app_preferences); }'现在的错误是不能解决PreferenceFragmentCompat –

0

嘿,我得到了解决我的问题

public class AppPreferences extends AppCompatActivity {

@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); 
    } 
} 


} 

相关问题