SharedPreferences实现设置界面,开发使用简介

时间:2019-09-18 15:50来源: 操作系统
SharedPreferences的二个用场是促成设置分界面,纵然将来的许大家都用它来囤积中央的键值对。 Toolbar 是在 Android 5.0 起先生产的贰个 Material Design 风格的领航控件,谷歌 特别推荐大家利用

SharedPreferences的二个用场是促成设置分界面,纵然将来的许大家都用它来囤积中央的键值对。

Toolbar 是在 Android 5.0 起先生产的贰个 Material Design 风格的领航控件 ,谷歌 特别推荐大家利用 Toolbar 来作为Android客商端的导航栏,以此来替代以前的 Actionbar 。

/res/xml/preferences.xml

  • 设置导航栏开关;
  • 永利皇宫463娱乐网址,设置App的logo;
  • 支撑设置标题和子标题;
  • 支撑增添三个或八个的自定义控件;
  • 帮助菜单Action Menu;
<PreferenceScreen xmlns:andro> <PreferenceCategory android:title="General options"> <CheckBoxPreference android:key = "silent_mode" android:defaultValue="false”用 android:title="Silent Mode" android:summary="Mute all sounds from this app" /> <SwitchPreference android:key="awesome_mode" android:defaultValue="false" android:switchTextOn="Yes" android:switchTextOff="No" android:title="Awesome mode™" android:summary="Enable the Awesome Mode™ feature"/> <EditTextPreference android:key="custom_storage" android:defaultValue="/sdcard/data/" android:title="Custom storage location" android:summary="Enter the directory path where you want data to be saved. If it does not exist, it will be created." android:dialogTitle="Enter directory path (eg. /sdcard/data/ )"/> </PreferenceCategory></PreferenceScreen>

永利皇宫463娱乐网址 1示意图

如上定义了安装分界面包车型客车可选项. 别的的一部分可接纳能够在Android官方文书档案查看。

1. 抬高正视

build.gradle

compile 'com.android.support:appcompat-v7:24.0.0'
package com.example.preferences;import android.preference.PreferenceActivity;import android.os.Bundle;public class PreferencesActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); }}

Intent i = new Intent(this, PreferencesActivity.class);startActivity;

2. 在布局中利用ToolBar

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:andro xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" tools:context="com.am.toolbartest.MainActivity"> <android.support.v7.widget.Toolbar android: android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" //指定z轴高度为4dp android:theme="@style/ThemeOverlay.AppCompat.ActionBar" //为ActionBar指定不同的主题样式 app:popupTheme="@style/ThemeOverlay.AppCompat.Light" //可以指定弹出的菜单的样式 > </android.support.v7.widget.Toolbar></RelativeLayout>

其余不要忘记了在Manifest文件里面注册

3. 在代码中选取ToolBar

在应用 Toolbar 时候需求先掩盖掉系统本来的导航栏

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏掉系统原先的导航栏 setContentView(R.layout.activity_main); mToolBar =  findViewById(R.id.mToolBar); setSupportActionBar; //把toolbar作为导航栏 }}
//set the default values we defined in the XMLPreferenceManager.setDefaultValues(this, R.xml.preferences, false);SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences; //get the values of the settings optionsboolean silentMode = preferences.getBoolean("silent_mode", false);boolean awesomeMode = preferences.getBoolean("awesome_mode", false); String string = preferences.getString("custom_storage", "");

4. 增进导航按键,logo,标题

mToolBar.setTitle; //在setSupportActionBar();之前才能生效setSupportActionBar; getSupportActionBar().setDisplayHomeAsUpEnabled; //mToolBar.setNavigationIcon(R.mipmap.ic_launcher); //设置导航栏图标mToolBar.setNavigationIcon(R.mipmap.ic_launcher);mToolBar.setLogo(R.mipmap.ic_launcher);mToolBar.setSubtitle;

是否很简短~

5. 在布局中增添自定义view

<android.support.v7.widget.Toolbar android: android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" > <TextView android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="自定义view" android:textColor="#fff" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" /> </android.support.v7.widget.Toolbar>

普照天星【Java开拓技术员】20-30k

6. 增加菜单

app>res>menu下创办菜单文件menu_main.xml,(倘使menu文件夹不在则开创之)

<?xml version="1.0" encoding="utf-8"?><menu xmlns:andro xmlns:app="http://schemas.android.com/apk/res-auto"> <item android: android:title="其他" android:orderInCategory="80" android:icon="@mipmap/ic_launcher" app:showAsAction="never" /> <item android: android:title="提醒" android:orderInCategory="90" android:icon="@mipmap/ic_launcher" app:showAsAction="never" /> <item android: android:title="设置" android:orderInCategory="90" android:icon="@mipmap/ic_launcher" app:showAsAction="never" /> </menu>

showAsAction的值首若是本着这几个菜单的来得起功效的,它有七个可选取:

  • always:总是显得在分界面上
  • never:不出示在分界面上,只让出现在左侧的四个点中
  • ifRoom:假如有职分才展现,不然就出现在侧边的五个点中

在MainActivity中创建关联菜单

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main,menu); return true; }

增添菜单的点击回调

private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { String msg = ""; switch (menuItem.getItemId { case R.id.action_1: msg += "点击其他1"; break; case R.id.action_tip: msg += "点击提醒"; break; case R.id.action_menu: msg += "点击设置"; break; } if(!msg.equals { Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } return true; } };

设置菜单点击监听

mToolBar.setOnMenuItemClickListener(onMenuItemClick);

效果体现

永利皇宫463娱乐网址 2效果

此间是体系地址

现在还应该有DrawerLayout + NavigationView的牵线,敬请期待!

参照小说

编辑: 操作系统 本文来源:SharedPreferences实现设置界面,开发使用简介

关键词:

  • 上一篇:没有了
  • 下一篇:没有了