android favor框架,GitHub - eandroid/Favor: A easy way to use android sharepreference

Favor

68747470733a2f2f7472617669732d63692e6f72672f736f6172636e2f4661766f722e73766768747470733a2f2f696d672e736869656c64732e696f2f62616467652f416e64726f6964253230417273656e616c2d4661766f722d627269676874677265656e2e7376673f7374796c653d666c6174

A easy way of using Android SharedPreferences.

How to use this library

Using Gradle

compile 'com.cocosw:favor:0.2.0@aar'

Using Maven

com.cocosw

favor

0.2.0

apklib

API

1 Define a interface.

@AllFavor

public interface Account {

@Default("No Name")

String getUserName();

String setPassword(String password);

}

2 The FavorAdatper class generates an implementation of the interface.

account = new FavorAdapter.Builder(getContext()).build().create(Account.class);

account.setPassword("Passw0rd");

String username = account.getUserName();

API Declaration

@AllFavor

@AllFavor

public interface Account {

@Default("No Name")

String getUserName();

String getPassword();

}

@Favor @Default

@Favor("city")

@Default("Sydney")

String city();

equals

PreferenceManager.getDefaultSharedPreferences(context).getString("city","Sydney");

And you can simplify it, Favor will extract the key from the method name

@Favor

@Default("Sydney")

String city();

@Commit

By default, Favor will call editor.apply() (>api9), but you can force it to use editor.commit() by @Commit

@Favor

@Commit

void setAddress(String address);

RxPreference

You are a RxJava fan, easy! (rx-preferences dependency is required)

@Favor

@Default("No Name")

Preference name();

Advanced usage

Favor support put/get all primitive types, including int/long/float/String/bool, String set is also supported for API>=11.

From 0.2.0, Favor (Experimentally) supports Serializable object saving/loading.

public class Image implements Serializable {

....

}

@Favor

Image image();

@Favor

void setImage(Image image);

There is one limitation that you can't set default value for Serializable preference item.

Proguard

# Favor

-dontwarn com.cocosw.favor.** { *; }

-keep class com.cocosw.favor.** { *; }

Contribute

Feel free to fork it

About me

I'm Kai, an 32 years old android developer living in Sydney.

License

Copyright 2011, 2015 Kai Liao

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility npm WARN deprecated consolidate@0.15.1: Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin. npm WARN deprecated microargs@1.1.2: This project has been renamed to @pawelgalazka/cli-args. Install using @pawelgalazka/cli-args instead npm WARN deprecated microcli@1.3.3: This project has been renamed to @pawelgalazka/cli . Install using @pawelgalazka/cli instead npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information. npm WARN tarball tarball data for @jest/types@http://10.129.3.105:8081/repository/npm-all/@jest/types/-/types-27.5.1.tgz (sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==) seems to be corrupted. Trying again. npm WARN deprecated runjs@4.4.2: This project has been renamed to 'tasksfile'. Install using 'npm install tasksfile' instead. npm WARN tarball tarball data for @jest/console@http://10.129.3.105:8081/repository/npm-all/@jest/console/-/console-27.5.1.tgz (sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==) seems to be corrupted. Trying again. npm WARN tarball tarball data for @jest/test-result@http://10.129.3.105:8081/repository/npm-all/@jest/test-result/-/test-result-27.5.1.tgz (sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==) seems to be corrupted. Trying again. npm WARN deprecated svgo@1.2.0: This SVGO version is no longer supported. Upgrade to v2.x.x. npm WARN tarball tarball data for @jest/types@http://10.129.3.105:8081/repository/npm-all/@jest/types/-/types-27.5.1.tgz (sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==) seems to be corrupted. Trying again. npm WARN tarball tarball data for @jest/console@http://10.129.3.105:8081/repository/npm-all/@jest/console/-/console-27.5.1.tgz (sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==) seems to be corrupted. Trying again. npm WARN tarball tarball data for @jest/test-result@http://10.129.3.105:8081/repository/npm-all/@jest/test-result/-/test-result-27.5.1.tgz (sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==) seems to be corrupted. Trying again.
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值