实现一个在代码里面动态创建preference并且控制控件布局的案例
时间: 2024-03-06 11:48:40 浏览: 98
好的,以下是一个在代码里面动态创建Preference并且控制控件布局的案例:
1. 创建一个布局文件preference_edit_text.xml,代码如下:
```xml
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
android:selectAllOnFocus="true"
android:singleLine="true" />
```
2. 在Activity中动态创建Preference,并设置布局文件,代码如下:
```java
public class MyPreferenceActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 创建PreferenceScreen
PreferenceScreen preferenceScreen = getPreferenceManager().createPreferenceScreen(this);
// 创建PreferenceCategory
PreferenceCategory preferenceCategory = new PreferenceCategory(this);
preferenceCategory.setTitle("Category");
// 创建EditTextPreference
EditTextPreference editTextPreference = new EditTextPreference(this);
editTextPreference.setTitle("Edit Text Preference");
editTextPreference.setSummary("Enter your text here");
editTextPreference.setDialogTitle("Enter Text");
editTextPreference.setKey("myEditText");
// 设置EditTextPreference的布局文件
editTextPreference.setLayoutResource(R.layout.preference_edit_text);
// 添加Preference到PreferenceCategory
preferenceCategory.addPreference(editTextPreference);
// 添加PreferenceCategory到PreferenceScreen
preferenceScreen.addPreference(preferenceCategory);
// 设置PreferenceScreen
setPreferenceScreen(preferenceScreen);
}
}
```
3. 在AndroidManifest.xml中声明该Activity,代码如下:
```xml
<activity android:name=".MyPreferenceActivity"
android:label="@string/app_name"
android:theme="@style/PreferenceTheme" />
```
4. 运行程序,即可看到动态创建的Preference,并且EditText的布局与我们在布局文件preference_edit_text.xml中设置的一致。
阅读全文