Android设置页面,androidx.preference的使用

Android设置页面,androidx.preference的使用,第1张

一场与Preference的战争
  • 一、介绍
  • 二、简单使用
    • 以下将会通过简单的Demo实现Preference的样例
    • 引入
      • build.gradle
      • MainActivity.java
      • activity_main.xml
      • SettingFragment.java
      • pref_setting.xml
  • 三、组件的使用
    • P r e f e r e n c e C a t e g o r y \color{HotPink}{ PreferenceCategory } PreferenceCategory
    • P r e f e r e n c e \color{HotPink}{Preference} Preference
    • D i a l o g \color{HotPink}{Dialog} Dialog
      • a r r a y s . x m l \color{HotPink}{arrays.xml} arrays.xml
    • 可 跳 转 的 P r e f e r e n c e \color{HotPink}{可跳转的Preference} Preference
    • S w i t c h P r e f e r e n c e C o m p a t \color{HotPink}{SwitchPreferenceCompat} SwitchPreferenceCompat
    • D r o p D o w n P r e f e r e n c e \color{HotPink}{DropDownPreference} DropDownPreference
      • a r r a y s . x m l \color{HotPink}{arrays.xml} arrays.xml
    • S e e k B a r P r e f e r e n c e \color{HotPink}{SeekBarPreference} SeekBarPreference
  • 总结
  • ∗ 注 : 转 载 请 注 明 出 处 . \color{HotPink}{*注:转载请注明出处.} :.😡

👉持续更新,敬请关注…

做 为 一 个 m a r k d o w n 的 小 白 , 跪 求 大 佬 教 下 如 何 制 作 页 内 跳 转 的 目 录 \color{LightSeaGreen}{做为一个markdown的小白,跪求大佬教下如何制作页内跳转的目录} markdown,🙏

一、介绍

  原有的android.support库已经废弃,建议使用androidx.preference,preference是一个非常简洁的设置页面,并且与系统界面拥有高契合度,让用户不会有太多的突兀感。
用官方的话来说就是
  无需与设备存储空间交互,也不需要管理界面,便能构建交互式设置画面。此库自带 Material 主题,可在不同的设备和 *** 作系统版本之间提供一致的用户体验。

二、简单使用
以下将会通过简单的Demo实现Preference的样例

  • 引入
build.gradle
   // Java language implementation
   implementation "androidx.preference:preference:1.2.0"
   // Kotlin
   implementation "androidx.preference:preference-ktx:1.2.0"
  • MainActivity.java
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.settings, new SettingFragment())
                .commit();
    }
}
  • activity_main.xml



    

  • SettingFragment.java
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;

public class SettingFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener {
    private SharedPreferences sharedPreferences = null;
    private Preference loginDjiAccount;

    @Override
    public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
        setPreferencesFromResource(R.xml.pref_setting, rootKey);
        //用于取值的SharedPreferences 
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
        initView();
    }

    private void initView() {
        loginDjiAccount = findPreference("login_dji_account");
        if (loginDjiAccount != null) {
            loginDjiAccount.setOnPreferenceClickListener(this);
        }
    }

    @Override
    public boolean onPreferenceClick(@NonNull Preference preference) {
        switch (preference.getKey()) {
            case "login_dji_account":
                String rtmpUrlStr = sharedPreferences.getString("rtmp_url_pre", "");
                if ("".equals(rtmpUrlStr)) {
                    Toast.makeText(getActivity(), "请在直播推流地址中随意填写值,再来点我...", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity(), "填写了:" + rtmpUrlStr, Toast.LENGTH_SHORT).show();
                }
                break;
            default:
                break;
        }
        return false;
    }
}
  • pref_setting.xml


    
        
        
    

    
        
        
        
    
    
        
            
        
        
        
        
        
        

        
    

以上为一个简单的Preference的使用
官方API androidx.preference


三、组件的使用
  • P r e f e r e n c e C a t e g o r y \color{HotPink}{ PreferenceCategory } PreferenceCategory

PreferenceCategory
  用于对相似的Preference进行分组的容器。PreferenceCategory显示一个类别标题,将Preference进行分组归类。



   
       
       
       
   

key释义
app:icon设置图标
app:key设置key,类似于android:id
app:summary子标题,类似于注释的作用
app:title标题
app:enabledtrue或false,设置是否可 *** 作
app:initialExpandedChildrenCountvalue为int类型,类似于抽屉效果,int值为不隐藏的数量,与上图中显示 高级效果一致
  • P r e f e r e n c e \color{HotPink}{Preference} Preference

Preference
  类似于Button。可进行点击,具有大标题、小标题等。


       
       
   
key释义
app:key设置key,类似于android:id
app:summary子标题,类似于注释的作用
app:title标题
app:enabledtrue或false,设置是否可 *** 作
app:icon设置图标
app:singleLineTitle设置为true时,超出屏幕部分自带省略号
  • D i a l o g \color{HotPink}{Dialog} Dialog

Dialog类型组件
  点击d出Dialog组件。常见的有三种,输入框d窗、单选d窗、多选d窗。



         
       
         
       
         
       
   
key释义
app:enableCopying设置true时,用户可长按复制值
app:key设置key,类似于android:id
app:summary子标题,类似于注释的作用
app:title标题
app:useSimpleSummaryProvider设置为true时,将会把选中或输入的值显示到summary中
app:entries该值是将array中的值作为显示值
app:entryValues当选中某项时,该值作为value进行存储
  • a r r a y s . x m l \color{HotPink}{arrays.xml} arrays.xml

将该文件放入value文件夹



   
       返航
       悬停
       最后一航点降落
       返回第一航点悬停
   
   
       GO_HOME
       NO_ACTION
       AUTO_LAND
       GO_FIRST_WAYPOINT
   
   
       悬停
       降落
       返航
   
   
       HOVER
       LANDING
       GO_HOME
   

  • 可 跳 转 的 P r e f e r e n c e \color{HotPink}{可跳转的Preference} Preference

可跳转的Preference
  点击该组件,可跳转网页。

     
           
       
key释义
app:summary子标题,类似于注释的作用
app:title标题
intent跳转组件
intent:data跳转地址
  • S w i t c h P r e f e r e n c e C o m p a t \color{HotPink}{SwitchPreferenceCompat} SwitchPreferenceCompat

SwitchPreferenceCompat
  该组件为开关组件,同时可通过该组件控制其他组件是否可 *** 作。


       
key释义
app:key设置key,类似于android:id
app:summary子标题,类似于注释的作用,默认值
app:app:summaryOn打开时所显示的副标题
app:app:summaryOff关闭时所显示的副标题
app:title标题
app:dependency填写所属上级的id,可被填写ID的控件控制
  • D r o p D o w n P r e f e r e n c e \color{HotPink}{DropDownPreference} DropDownPreference

DropDownPreference
  该组件为下拉按钮d窗,点击d出的下拉d窗将会在按钮旁显示.

       
key释义
app:key设置key,类似于android:id
app:title标题
app:entries该值是将array中的值作为显示值
app:entryValues当选中某项时,该值作为value进行存储
app:useSimpleSummaryProvider副标题将会采用选中值
  • a r r a y s . x m l \color{HotPink}{arrays.xml} arrays.xml

将该文件放入value文件夹



   
       返航
       悬停
       最后一航点降落
       返回第一航点悬停
   
   
       GO_HOME
       NO_ACTION
       AUTO_LAND
       GO_FIRST_WAYPOINT
   
   
       悬停
       降落
       返航
   
   
       HOVER
       LANDING
       GO_HOME
   

  • S e e k B a r P r e f e r e n c e \color{HotPink}{SeekBarPreference} SeekBarPreference

SeekBarPreference
  该组件为横向滑动条组件.

       
key释义
app:key设置key,类似于android:id
app:title标题
app:defaultValue滑动条的默认值
总结
  • 后续会持续进行更新各个属性,敬请关注。
  • 有疑问请留言或通过私信,我会尽快回复。
∗ 注 : 转 载 请 注 明 出 处 . \color{HotPink}{*注:转载请注明出处.} :.😡

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

原文地址: http://outofmemory.cn/langs/916724.html

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

发表评论

登录后才能评论

评论列表(0条)

保存