十三、签到和小红点功能
来源:互联网 发布:如何看待中央反贪知乎 编辑:程序博客网 时间:2024/05/23 01:21
当天如果未签到,则在签到的按钮右上角显示一个小红点,点击后红点消失。
在主页的fragment创建时判断今天有没有签到,没有签到则显示小红点:
private void initData() { if (!SignUtil.isSignedToday()) { // 今日没有签名则显示小圆点 mTitleBarView.showPoint(); } }签到的工具类:
public class SignUtil { private static int ALREADY_CODE = 6307; private static SignListener mSignListener; /** * 今天是否签到 * @return */ public static boolean isSignedToday() { SharedPreferencesUtil sp = SharedPreferencesUtil.getUserSharedPreferences(KengApplication.getInstance().getApplicationContext(), UserUtil.getUserId()); long lastSign = sp.get(SharedPreferencesConstant.NAME_SIGN_DATE, 0L); if (lastSign<=0 || !DateUtil.isToday(lastSign)) return false; return true; } /** * 签到 */ public static void sign() { if (isSignedToday()) { KengToast.show(R.string.already_sign); return; } KengHttpBuilder builder = new KengHttpBuilder(); builder.url(HttpUtil.BASE_URL + "client/user_sign_j.ss"); builder.put(UserState.ID, UserUtil.getUserId()); HttpUtil.sendRequest(builder, new KengHttpCallback() { @Override public void onSuccess(JSONObject data) { KengToast.show(KengApplication.getInstance().getApplicationContext().getString(R.string.sign_success, data.optInt("continuityTimes"))); // 保存签到时间到本地 SharedPreferencesUtil sp = SharedPreferencesUtil.getUserSharedPreferences(KengApplication.getInstance().getApplicationContext(), UserUtil.getUserId()); sp.put(SharedPreferencesConstant.NAME_SIGN_DATE, System.currentTimeMillis()); if (mSignListener != null) { // 签到成功回调 mSignListener.onSuccess(); } } @Override public void onFail(int code, String msg) { KengToast.show(msg); if (code == ALREADY_CODE) { SharedPreferencesUtil sp = SharedPreferencesUtil.getUserSharedPreferences(KengApplication.getInstance().getApplicationContext(), UserUtil.getUserId()); sp.put(SharedPreferencesConstant.NAME_SIGN_DATE, System.currentTimeMillis()); } } }); } public static void setSignListener(SignListener mSignListener) { SignUtil.mSignListener = mSignListener; } /** * 签到回调 */ public interface SignListener { void onSuccess(); }}在主页的fragment中的签到点击事件:
@Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_right: mTitleBarView.hidePoint(); SignUtil.sign(); break; } }小红点在标题栏中的布局:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="@dimen/titlebar_height" android:background="@color/titlebar_color"> <TextView android:id="@+id/tv_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/margin_default" android:textColor="@color/font_white" android:textSize="@dimen/font_small" /> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginLeft="@dimen/margin_default" android:textColor="@color/font_white" android:textSize="@dimen/font_middle" /> <TextView android:id="@+id/tv_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:layout_marginRight="@dimen/margin_default" android:textColor="@color/font_white" android:textSize="@dimen/font_small" /> <!-- 小红点--> <ImageView android:id="@+id/iv_circle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/circle_point" android:layout_alignRight="@id/tv_right" android:layout_alignTop="@id/tv_right" android:visibility="gone" /></RelativeLayout>小红点是用shape绘制的circle_point.xml:
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="@android:color/holo_red_light" /> <size android:width="@dimen/circle_size" android:height="@dimen/circle_size" /></shape>未签到界面:
已签到界面:
1 0
- 十三、签到和小红点功能
- 签到功能
- 签到功能
- 签到功能之三部曲
- 连续签到的功能
- java签到功能
- 签到功能代码
- 自定义签到功能
- php实现签到功能
- php实现签到功能
- php实现签到功能
- php实现签到功能
- 每日签到的功能
- Facebook数周内推地理位置签到功能
- Android签到功能的实现
- js实现每日签到功能
- 自定义Calendar实现签到功能
- PHP简单签到功能实现
- codeforces #366 704B 704C 704D 704E
- scala基础----》map基本操作
- 数据结构实验之查找一:二叉排序树
- 设计模式_单例模式(singleton)
- 自学java(7)继承:5.2开始
- 十三、签到和小红点功能
- 数据结构
- zcmu 1616: 最长回文串
- Glusterfs的常用命令
- Zynq的LWIP裸奔应用
- 策略模式、代理模式
- jsp内置对象总结
- nginx学习笔记
- 独立按键和矩阵键盘