实现一个在代码里面动态创建preference并且控制控件布局,拥有4个控件,每个控件1个title,1个summary
时间: 2024-09-06 07:07:01 浏览: 55
Android学习笔记之Shared Preference
在代码中动态创建preference并控制控件布局,通常涉及到Android开发中的PreferenceFragmentCompat或者PreferenceActivity。下面是一个简要的步骤说明,如何实现这样的功能:
1. 创建一个继承自PreferenceFragmentCompat的Fragment类。
2. 在该Fragment类中重写`onCreatePreferences`方法,在这个方法中使用`PreferenceManager`来设置preference的XML资源文件或直接创建Preference。
3. 定义一个XML资源文件,用于描述preference的布局,包括title和summary。
4. 在Fragment的视图布局文件中引入PreferenceFragmentCompat,并设置它在UI中的位置。
5. 为每个Preference设置相应的title和summary。
示例代码如下:
```java
public class MyPreferenceFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
```
XML资源文件(preferences.xml)示例:
```xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:key="pref1_key"
android:title="控件1标题"
android:summary="控件1简介" />
<Preference
android:key="pref2_key"
android:title="控件2标题"
android:summary="控件2简介" />
<Preference
android:key="pref3_key"
android:title="控件3标题"
android:summary="控件3简介" />
<Preference
android:key="pref4_key"
android:title="控件4标题"
android:summary="控件4简介" />
</PreferenceScreen>
```
然后在Activity中引入这个Fragment:
```java
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.preferences_container, new MyPreferenceFragment())
.commit();
}
}
```
对应的Activity布局文件(activity_my.xml)示例:
```xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/preferences_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
阅读全文