Android 与首选屏幕布局不同的布局

Android 与首选屏幕布局不同的布局,android,settings,preferencescreen,Android,Settings,Preferencescreen,我使用首选项屏幕进行设置 acticitie可以与@android:style/Theme.Dialog主题配合使用。 因此,一个对话框出现在我的主活动中心 它在ldpi、mdpi和hdpi上运行良好,但在xhdpi上不起作用。 切换首选项覆盖我的标题项!将创建一个边距=s 良好(ldpi、mdpi、hdpi): 坏(xhdpi): 如何删除此项? 谢谢你 XML: 代码: public class Settings extends PreferenceActivity implement

我使用首选项屏幕进行设置

acticitie可以与@android:style/Theme.Dialog主题配合使用。 因此,一个对话框出现在我的主活动中心

它在ldpi、mdpi和hdpi上运行良好,但在xhdpi上不起作用。 切换首选项覆盖我的标题项!将创建一个边距=s

良好(ldpi、mdpi、hdpi):

坏(xhdpi):

如何删除此项? 谢谢你

XML:


代码:

public class Settings extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener{
protected Method mLoadHeaders = null;
protected Method mHasHeaders = null;

/**
 * Checks to see if using new v11+ way of handling PrefsFragments.
 * @return Returns false pre-v11, else checks to see if using headers.
 */
public boolean isNewV11Prefs() {
    if (mHasHeaders!=null && mLoadHeaders!=null) {
        try {
            return (Boolean)mHasHeaders.invoke(this);
        } catch (IllegalArgumentException e) {
        } catch (IllegalAccessException e) {
        } catch (InvocationTargetException e) {
        }
    }
    return false;
}

@Override
public void onCreate(Bundle aSavedState) {
            //onBuildHeaders() will be called during super.onCreate()
    try {
        mLoadHeaders = getClass().getMethod("loadHeadersFromResource", int.class, List.class );
        mHasHeaders = getClass().getMethod("hasHeaders");
    } catch (NoSuchMethodException e) {
    }
    super.onCreate(aSavedState);
    if (!isNewV11Prefs()) {
        addPreferencesFromResource(R.xml.settings);
    }
    SharedPreferences sharedPref = getPreferenceScreen().getSharedPreferences();
    ListPreference pref = (ListPreference) findPreference("speed_preferences");
    switch (Integer.valueOf(sharedPref.getString("speed_preferences", "0"))) {
        case Vitesse.KMH:
            pref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + getResources().getString(R.string.settings_speed_kmh));
            break;
        case Vitesse.MS:
            pref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + getResources().getString(R.string.settings_speed_ms));
            break;
        case Vitesse.MPH:
            pref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + getResources().getString(R.string.settings_speed_mph));
            break;
    }
    pref = (ListPreference) findPreference("mode_preferences");
    if (sharedPref.getString("mode_preferences", Preferences.Mode.SIMPLE.toString()).equals(Preferences.Mode.SIMPLE.toString())) {
        pref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + getResources().getString(R.string.settings_mode_single));
    } else {
        pref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + getResources().getString(R.string.settings_mode_burst));
    }
}

@Override
public void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
    Preference pref;
    if ((pref = findPreference(s)) instanceof ListPreference) {
        ListPreference listPref = (ListPreference) pref;
        if (listPref.getKey().equals("speed_preferences")) {
            listPref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + listPref.getEntry());
        } else if (listPref.getKey().equals("mode_preferences")) {
            listPref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + listPref.getEntry());
        }
    }
}

@Override
public void onBuildHeaders(List<Header> aTarget) {
    try {
        mLoadHeaders.invoke(this,new Object[]{R.xml.settings,aTarget});
    } catch (IllegalArgumentException e) {
    } catch (IllegalAccessException e) {
    } catch (InvocationTargetException e) {
    }
}

static public class PrefsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{
    @Override
    public void onCreate(Bundle aSavedState) {
        super.onCreate(aSavedState);
        addPreferencesFromResource(R.xml.settings);
    }

    @Override
    public void onResume() {
        super.onResume();
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onPause() {
        super.onPause();
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
        Preference pref;
        if ((pref = findPreference(s)) instanceof ListPreference) {
            ListPreference listPref = (ListPreference) pref;
            if (listPref.getKey().equals("speed_preferences")) {
                listPref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + listPref.getEntry());
            } else if (listPref.getKey().equals("mode_preferences")) {
                listPref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + listPref.getEntry());
            }
        }
    }
}
公共类设置扩展首选项活动实现SharedReferences.OnSharedPreferenceChangeListener{
受保护的方法mLoadHeaders=null;
受保护的方法mhaheaders=null;
/**
*检查是否使用新的v11+方式处理预碎片。
*@return返回false pre-v11,否则检查是否使用头。
*/
公共布尔值isNewV11Prefs(){
if(mhaheaders!=null&&mLoadHeaders!=null){
试一试{
返回(布尔)mhaheaders.invoke(this);
}捕获(IllegalArgumentException e){
}捕获(非法访问例外e){
}捕获(调用TargetException e){
}
}
返回false;
}
@凌驾
创建时的公共void(Bundle aSavedState){
//onBuildHeaders()将在super.onCreate()期间调用
试一试{
mLoadHeaders=getClass().getMethod(“loadHeadersFromResource”,int.class,List.class);
mHasHeaders=getClass().getMethod(“hasHeaders”);
}捕获(无此方法例外){
}
super.onCreate(aSavedState);
如果(!isNewV11Prefs()){
addPreferencesFromResource(R.xml.settings);
}
SharedReferences SharedReferences=getPreferenceScreen().GetSharedReferences();
ListPreference pref=(ListPreference)findPreference(“速度_首选项”);
开关(Integer.valueOf(sharedPref.getString(“速度参数设置”、“0”)){
案例Vitesse.KMH:
pref.setSummary(getResources().getString(R.string.settings\u speed\u summary)+“:“+getResources().getString(R.string.settings\u speed\u kmh));
打破
case Vitesse.MS:
pref.setSummary(getResources().getString(R.string.settings\u speed\u summary)+“:“+getResources().getString(R.string.settings\u speed\u ms));
打破
case Vitesse.MPH:
pref.setSummary(getResources().getString(R.string.settings\u speed\u summary)+“:“+getResources().getString(R.string.settings\u speed\u mph));
打破
}
pref=(ListPreference)findPreference(“模式_首选项”);
if(sharedPref.getString(“mode_preferences”,preferences.mode.SIMPLE.toString()).equals(preferences.mode.SIMPLE.toString())){
pref.setSummary(getResources().getString(R.string.settings\u mode\u summary)+“:“+getResources().getString(R.string.settings\u mode\u single));
}否则{
pref.setSummary(getResources().getString(R.string.settings\u mode\u summary)+“:“+getResources().getString(R.string.settings\u mode\u burst));
}
}
@凌驾
恢复时公开作废(){
super.onResume();
getPreferenceScreen().GetSharedReferences().RegisterOnSharedReferenceChangeListener(此);
}
@凌驾
公共无效暂停(){
super.onPause();
getPreferenceScreen().GetSharedReferences().unregisterOnSharedPreferenceChangeListener(此);
}
@凌驾
已更改共享首选项上的公共void(SharedReferences SharedReferences,字符串s){
偏好优先;
if((pref=findPreference)ListPreference的实例){
ListPreference listPref=(ListPreference)pref;
if(listPref.getKey().equals(“速度首选项”)){
listPref.setSummary(getResources().getString(R.string.settings\u speed\u summary)+“:“+listPref.getEntry());
}else if(listPref.getKey().equals(“模式_首选项”)){
listPref.setSummary(getResources().getString(R.string.settings_mode_summary)+“:“+listPref.getEntry());
}
}
}
@凌驾
public void onBuildHeaders(列出目标){
试一试{
调用(这个,新对象[]{R.xml.settings,atatarget});
}捕获(IllegalArgumentException e){
}捕获(非法访问例外e){
}捕获(调用TargetException e){
}
}
静态公共类PrefsFragment扩展PreferenceFragment实现SharedReferences.OnSharedPreferenceChangeListener{
@凌驾
创建时的公共void(Bundle aSavedState){
super.onCreate(aSavedState);
addPreferencesFromResource(R.xml.settings);
}
@凌驾
恢复时公开作废(){
super.onResume();
getPreferenceScreen().GetSharedReferences().RegisterOnSharedReferenceChangeListener(此);
}
@凌驾
公共无效暂停(){
super.onPause();
getPreferenceScreen().GetSharedReferences().unregisterOnSharedPreferenceChangeListener(此);
}
@凌驾
已更改共享首选项上的公共void(SharedReferences SharedReferences,字符串s){
偏好优先;
if((pref=findPreference)ListPreference的实例){
ListPreference listPref=(ListPreference)pref;
if(listPref.getKey().equals(“速度首选项”)){
listPref.setSummary(getResources().getString(R.string.settings\u speed\u summary)+“:“+listPref.getEntry());
}else if(listPref.getKey().equals(“模式_首选项”)){
listPref.setSummary(getResources().getString(R.string.settings_mode_summary)+“:“+listPref.getEntry());
}
}
}
}

}

坦白说,没有人能想象你在这里或任何地方遇到的问题。我们需要查看代码。否则,对我们来说,您只是又一个糟糕的问题。\n我使用此代码作为首选项屏幕,请不要让人们打开4个选项卡来帮助您。把问题贴在上面,完整地说明你的问题。请阅读常见问题解答。我添加了代码!我的问题是在XHDPI上,设置的可视化效果与其他分辨率不一样。看,这两幅图像我已经被道氏逆转了
public class Settings extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener{
protected Method mLoadHeaders = null;
protected Method mHasHeaders = null;

/**
 * Checks to see if using new v11+ way of handling PrefsFragments.
 * @return Returns false pre-v11, else checks to see if using headers.
 */
public boolean isNewV11Prefs() {
    if (mHasHeaders!=null && mLoadHeaders!=null) {
        try {
            return (Boolean)mHasHeaders.invoke(this);
        } catch (IllegalArgumentException e) {
        } catch (IllegalAccessException e) {
        } catch (InvocationTargetException e) {
        }
    }
    return false;
}

@Override
public void onCreate(Bundle aSavedState) {
            //onBuildHeaders() will be called during super.onCreate()
    try {
        mLoadHeaders = getClass().getMethod("loadHeadersFromResource", int.class, List.class );
        mHasHeaders = getClass().getMethod("hasHeaders");
    } catch (NoSuchMethodException e) {
    }
    super.onCreate(aSavedState);
    if (!isNewV11Prefs()) {
        addPreferencesFromResource(R.xml.settings);
    }
    SharedPreferences sharedPref = getPreferenceScreen().getSharedPreferences();
    ListPreference pref = (ListPreference) findPreference("speed_preferences");
    switch (Integer.valueOf(sharedPref.getString("speed_preferences", "0"))) {
        case Vitesse.KMH:
            pref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + getResources().getString(R.string.settings_speed_kmh));
            break;
        case Vitesse.MS:
            pref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + getResources().getString(R.string.settings_speed_ms));
            break;
        case Vitesse.MPH:
            pref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + getResources().getString(R.string.settings_speed_mph));
            break;
    }
    pref = (ListPreference) findPreference("mode_preferences");
    if (sharedPref.getString("mode_preferences", Preferences.Mode.SIMPLE.toString()).equals(Preferences.Mode.SIMPLE.toString())) {
        pref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + getResources().getString(R.string.settings_mode_single));
    } else {
        pref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + getResources().getString(R.string.settings_mode_burst));
    }
}

@Override
public void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}

@Override
public void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
    Preference pref;
    if ((pref = findPreference(s)) instanceof ListPreference) {
        ListPreference listPref = (ListPreference) pref;
        if (listPref.getKey().equals("speed_preferences")) {
            listPref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + listPref.getEntry());
        } else if (listPref.getKey().equals("mode_preferences")) {
            listPref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + listPref.getEntry());
        }
    }
}

@Override
public void onBuildHeaders(List<Header> aTarget) {
    try {
        mLoadHeaders.invoke(this,new Object[]{R.xml.settings,aTarget});
    } catch (IllegalArgumentException e) {
    } catch (IllegalAccessException e) {
    } catch (InvocationTargetException e) {
    }
}

static public class PrefsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{
    @Override
    public void onCreate(Bundle aSavedState) {
        super.onCreate(aSavedState);
        addPreferencesFromResource(R.xml.settings);
    }

    @Override
    public void onResume() {
        super.onResume();
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onPause() {
        super.onPause();
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
        Preference pref;
        if ((pref = findPreference(s)) instanceof ListPreference) {
            ListPreference listPref = (ListPreference) pref;
            if (listPref.getKey().equals("speed_preferences")) {
                listPref.setSummary(getResources().getString(R.string.settings_speed_summary) + " : " + listPref.getEntry());
            } else if (listPref.getKey().equals("mode_preferences")) {
                listPref.setSummary(getResources().getString(R.string.settings_mode_summary) + " : " + listPref.getEntry());
            }
        }
    }
}