Giter VIP home page Giter VIP logo

android-todolist's Introduction

介绍

一个创建、编辑、删除和搜索 Todo 的示例。

Todo页,

img

应用内搜索页,

img

演示功能

  • 数据增删改查, AVObject 与 AVQuery 的使用
  • AVObject 的子类化
  • 统计功能, 统计相应的事件,从而分析用户喜好
  • 统计的自定义事件功能
  • 应用内搜索, 便捷地找到所需要的信息

如何运行

  • 用 Android Gradle 打开本项目,运行即可
  • 导入 Eclipse 可能会提示某些类没有找到,请到 SDK 下载页下载 SDK。需要基础、推送、统计、应用内搜索四个模块。

替换 App 信息

Demo 使用的是公共的 app id 和 app key,您可以在com.avos.demo.ToDoListApplication修改成您自己的应用 id 和 key。

不过首先需要在您的数据管理平台手工创建一个 Class,名称设定为Todo即可。

阅读代码

核心的用到 AVOS Cloud 服务都在AVService.java 里,

public class AVService {
  public static void AVInit(Context ctx) {
    // 初始化应用 Id 和 应用 Key,您可以在应用设置菜单里找到这些信息
    AVOSCloud.initialize(ctx, "70l90kzm53nplnu013ala0j8wipr594d36m5zuz94ukvmh5s",
        "lamrsuheyiaqcx4o7m3jaz4awaeukerit1mucnjwk7ibokfv");
    // 启用崩溃错误报告
    AVAnalytics.enableCrashReport(ctx, true);
    // 注册子类
    AVObject.registerSubclass(Todo.class);
  }

  public static void fetchTodoById(String objectId,GetCallback<AVObject> getCallback) {
    Todo todo = new Todo();
    todo.setObjectId(objectId);
    // 通过Fetch获取content内容
    todo.fetchInBackground(getCallback);
  }

  public static void createOrUpdateTodo(String objectId, String content, SaveCallback saveCallback) {
    final Todo todo = new Todo();
    if (!TextUtils.isEmpty(objectId)) {
      // 如果存在objectId,保存会变成更新操作。
      todo.setObjectId(objectId);
    }
    todo.setContent(content);
    // 异步保存
    todo.saveInBackground(saveCallback);
  }

  public static List<Todo> findTodos() {
    // 查询当前Todo列表
    AVQuery<Todo> query = AVQuery.getQuery(Todo.class);
    // 按照更新时间降序排序
    query.orderByDescending("updatedAt");
    // 最大返回1000条
    query.limit(1000);
    try {
      return query.find();
    } catch (AVException exception) {
      Log.e("tag", "Query todos failed.", exception);
      return Collections.emptyList();
    }
  }

  public static void searchQuery(String inputSearch) {
    AVSearchQuery searchQuery = new AVSearchQuery(inputSearch);
    searchQuery.search();
  }
}

android-todolist's People

Contributors

lzwjava avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.