Error:(25, 94) error: incompatible types: SettingsFragment cannot be converted to Fragment
Error:(25, 94) error: incompatible types: SettingsFragment cannot be converted to Fragment
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 错误是 Error:(25, 94) 错误:类型不兼容:无法将 SettingsFragment 转换为 Fragment
FragmentTransaction setting_fragment = fragmentTransaction.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);
addPreferencesFromResource(R.xml.app_preferences);
}
}
你应该使用(如果你想保持兼容性)包含在支持 v7 兼容性库中的PreferenceFragmentCompat
。
PreferenceFragment
不包含在片段的兼容性集中,因此将 PreferenceFragment
更改为 PreferenceFragmentCompat
应该足以满足您的海豚。
检查 this。
希望对您有所帮助
嘿,我找到了解决问题的方法
</p>
<p>public class AppPreferences 扩展 AppCompatActivity {</p>
<pre><code>@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_detail);
问题出在这段代码和这个 getSupportFragment();
所以我只使用 getFragmentManager();
及其作品
// 片段管理器 fragmentManager = getSupportFragmentManager();
// FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();</p>
<p>
</p>
<pre><code> 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);
}
}
}
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 错误是 Error:(25, 94) 错误:类型不兼容:无法将 SettingsFragment 转换为 Fragment
FragmentTransaction setting_fragment = fragmentTransaction.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);
addPreferencesFromResource(R.xml.app_preferences);
}
}
你应该使用(如果你想保持兼容性)包含在支持 v7 兼容性库中的PreferenceFragmentCompat
。
PreferenceFragment
不包含在片段的兼容性集中,因此将 PreferenceFragment
更改为 PreferenceFragmentCompat
应该足以满足您的海豚。
检查 this。
希望对您有所帮助
嘿,我找到了解决问题的方法
</p>
<p>public class AppPreferences 扩展 AppCompatActivity {</p>
<pre><code>@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_detail);
问题出在这段代码和这个 getSupportFragment();
所以我只使用 getFragmentManager();
及其作品
// 片段管理器 fragmentManager = getSupportFragmentManager();
// FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();</p>
<p>
</p>
<pre><code> 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);
}
}
}