android用户界面框架采用什么模式

Android的用户界面框架采用单线程用户界面(Single-threaded UI)的模式。

ListPreference简介

ListPreference是Android中的一种首选项框架,它允许用户从一个列表中选择一个选项,ListPreference通常用于那些只有有限个选项的情况,例如颜色、字体大小等,与Spinner相比,ListPreference的性能更好,因为它不需要在内存中存储所有的选项数据。

创新互联主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务兴文,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

ListPreference的使用

1、创建ListPreference

要使用ListPreference,首先需要在布局文件中添加一个EditText控件,用于输入用户的选择,然后在代码中创建一个ListPreference实例,并将其与EditText控件关联。


2、在Java代码中设置ListPreference的监听器

要监听ListPreference的变化,需要为其设置一个OnPreferenceChangeListener,当用户更改首选项时,监听器会被调用,并传入用户选择的新值。

ListPreference listPreference = (ListPreference) findPreference("list_preference");
listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        String selectedColor = (String) newValue;
        // 根据用户选择的颜色执行相应操作
        return true;
    }
});

3、从资源文件中获取列表项数据

要让ListPreference显示一个列表,需要在资源文件(如res/values/strings.xml)中定义一个字符串数组,其中包含列表项的文本,然后在代码中通过ArrayUtils类将数组转换为CharSequence数组。


    
        红色
        绿色
        蓝色
    

import androidx.annotation.NonNull;
import java.util.Arrays;
import java.util.List;
import android.content.Context;
import androidx.core.content.res.ResourcesCompat;
import org.apache.commons.lang3.ArrayUtils;
public class MyActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
List colorEntries = Arrays.asList(getResources().getStringArray(R.array.colors));
CharSequence[] colorCodes = ArrayUtils.toObject(colorEntries);

4、为ListPreference设置列表项图标和提示文字样式

如果希望为列表项添加图标和自定义提示文字样式,可以在资源文件中定义一个drawable和string数组,然后在代码中通过TypedArray获取这些资源ID,最后将这些资源ID设置到ListPreference的entryIcon和entryHint属性上。


    
        @mipmap/red
        @mipmap/green
        @mipmap/blue
    

TypedArray typedArray = getResources().obtainTypedArray(R.array.color_codes);
int[] colorCodeIds = new int[typedArray.length()];
for (int i = 0; i < typedArray.length(); i++) {
    colorCodeIds[i] = typedArray.getResourceId(i, R.mipmap.red); //默认图标为红色圆点图标,如果没有对应的资源ID则使用默认值,可以自行修改。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(((((((((((((((((((((((((((((((((((((((((((((((&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%............................................................................................................%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}$}}}}}}$}}}}}}}}}}$}}}}}}$}}}}}}}}}$}}}}}}}}}}}}}$}}}}}}$}}}}}}}}}$}}}}}}$}}}}}}$}}}}}}}}}$}}}}}}$}}}}}}$}}}}}}}}}$}}}}}}}}}$}}}}}}}}}$}}}}|$

新闻标题:android用户界面框架采用什么模式
浏览路径:http://www.gawzjz.com/qtweb/news33/166233.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联