java-将PreferenceScreen添加到linearlayout

java-将PreferenceScreen添加到linearlayout,第1张

概述嗨,我是Android和Java的新手,遇到了问题.我的问题是我试图将PreferenceScreen添加到线性布局中,以便能够在res/layout/activity_main.xml中的搜索栏中设置setOnSeekBarChangeListener().目前,PreferenceScreen和LinearLayout已添加到视图中,但它们彼此重叠,这不是我想要的.相反

嗨,我是Android和Java的新手,遇到了问题.我的问题是我试图将PreferenceScreen添加到线性布局中,以便能够在res / layout / activity_main.xml中的搜索栏中设置setonSeekbarchangelistener().目前,PreferenceScreen和linearLayout已添加到视图中,但它们彼此重叠,这不是我想要的.相反,我希望PreferenceScreen可以代替布局文件中的@R_301_6818@VIEw.

res / xml / settings.xml

<PreferenceScreen xmlns:androID="http://schemas.androID.com/apk/res/androID">    <Preferencecategory        androID:title="category"        androID:key="category_preference">        <SwitchPreference            androID:key="switch_preference"            androID:title="Title"            androID:summary="Summary"            androID:defaultValue="true" />        <CheckBoxPreference            androID:key="checkBox_preference"            androID:title="Title"            androID:summary="Summary"            androID:defaultValue="true" />    </Preferencecategory></PreferenceScreen>

RES /布局/activity_main.xml

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="fill_parent"    androID:orIEntation="vertical"    androID:layout_height="fill_parent"    androID:paddingBottom="@dimen/activity_vertical_margin"    androID:paddingleft="@dimen/activity_horizontal_margin"    androID:paddingRight="@dimen/activity_horizontal_margin"    androID:paddingtop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <Seekbar        androID:ID="@+ID/main_seek_bar"        androID:layout_wIDth="fill_parent"        androID:layout_height="wrap_content" />    <@R_301_6818@VIEw androID:ID="@androID:ID/@R_301_6818@"        androID:layout_wIDth="fill_parent"        androID:layout_height="fill_parent" /></linearLayout>

MainActivity.java

public class MainActivity extends Activity {    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        getFragmentManager().beginTransaction().replace(androID.R.ID.content, new SettingsFragment()).commit();        setContentVIEw(R.layout.activity_main);        Seekbar seekbar = (Seekbar) findVIEwByID(R.ID.main_seek_bar);        seekbar.setontouch@R_301_6818@ener(new Seekbar.Ontouch@R_301_6818@ener() {            @OverrIDe            public boolean ontouch(VIEw arg0, MotionEvent arg1) {                // Todo auto-generated method stub                return false;            }        });    }    public static class SettingsFragment extends PreferenceFragment implements OnSharedPreferencechangelistener {        public static final String KEY_PREF_SYNC_CONN = "pref_syncConnectionType";        @OverrIDe        public voID onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            addPreferencesFromresource(R.xml.settings);            onSharedPreferenceChanged(null, "");        }        @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 key) {            if (key.equals("switch_preference")) {                Toast.makeText(getActivity(), "Switch", Toast.LENGTH_LONG).show();            }        }    }}

解决方法:

在您的res / layout / activity_main.xml文件中进行更改

<@R_301_6818@VIEw androID:ID="@androID:ID/@R_301_6818@"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent" />

<fragment androID:ID="@+ID/fragment_settings"          androID:layout_wIDth="fill_parent"          androID:name="yourpackagename.MainActivity$SettingsFragment"          androID:layout_height="fill_parent" />

然后在您的MainActivity.java文件中删除以下行

getFragmentManager().beginTransaction().replace(androID.R.ID.content, new SettingsFragment()).commit();
总结

以上是内存溢出为你收集整理的java-将PreferenceScreen添加到linearlayout全部内容,希望文章能够帮你解决java-将PreferenceScreen添加到linearlayout所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1077088.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存