2016-11-07 63 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); 
    } 
} 


} 

相關問題