
嗨,我是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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)