精华内容
下载资源
问答
  • 待办事项清单 建于 依赖管理
  • To-Do-List:香草Java待办事项清单
  • to-do-list:一个简单的Java待办事项清单
  • 待办事项Javascript 待办事项清单实名制pequenas atividades simples 可以使用CRUD的公用对象,也可以使用python和sqlalchemy并用
  • package revo.todo.RevoToDo....import java.awt.event.WindowAdapter;public class MyWindowAdapter extends WindowAdapter{@Overridepublic void windowClosing(java.awt.event.WindowEvent windowEvent) {S...

    package revo.todo.RevoToDo.adapters;

    import java.awt.event.WindowAdapter;

    public class MyWindowAdapter extends WindowAdapter{

    @Override

    public void windowClosing(java.awt.event.WindowEvent windowEvent) {

    System.exit(0);

    }

    }

    package revo.todo.RevoToDo.aspects;

    import java.io.FileNotFoundException;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.IOException;

    import java.util.List;

    import org.aspectj.lang.annotation.Aspect;

    import org.aspectj.lang.annotation.Before;

    import org.json.simple.JSONObject;

    import org.json.simple.parser.JSONParser;

    import org.json.simple.parser.ParseException;

    import revo.todo.RevoToDo.App;

    import revo.todo.RevoToDo.Window;

    @Aspect

    public class JSONAspect {

    /*

    * Json save

    */

    @Before("execution(* revo.todo.RevoToDo.adapters.MyWindowAdapter.windowClosing(..))")

    @SuppressWarnings("unchecked")

    public void saveToJson(){

    System.out.println("saveToJson()");

    Window window = App.getContext().getBean(Window.class);

    try{

    JSONObject json = new JSONObject();

    json.put("todo", window.getTodoList());

    //Write JSON file

    try (FileWriter file = new FileWriter("data.json")) {

    file.write(json.toJSONString());

    file.flush();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }catch(Exception e){System.out.println("JSON Save Error!");e.printStackTrace();}

    }

    /*

    * JSon read

    */

    @Before("execution(* revo.todo.RevoToDo.Window.setVisible(..))")

    @SuppressWarnings("unchecked")

    public void readFromJSon(){

    System.out.println("readFromJson()");

    Window window = App.getContext().getBean(Window.class);

    JSONParser jsonParser = new JSONParser();

    try (FileReader reader = new FileReader("data.json"))

    {

    //Read JSON file

    Object obj = jsonParser.parse(reader);

    JSONObject data = (JSONObject) obj;

    window.setTodoList((List) data.get("todo"));

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } catch (ParseException e) {

    e.printStackTrace();

    }

    }

    }

    package revo.todo.RevoToDo;

    import java.awt.Dimension;

    import java.awt.GridLayout;

    import java.util.ArrayList;

    import java.util.List;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    import javax.swing.JTextArea;

    import org.springframework.beans.factory.annotation.Value;

    import org.springframework.context.annotation.PropertySource;

    import org.springframework.stereotype.Component;

    import revo.todo.RevoToDo.adapters.MyWindowAdapter;

    import revo.todo.RevoToDo.buttons.RemoveButton;

    import revo.todo.RevoToDo.buttons.SubmitButton;

    @Component

    @PropertySource("classpath:app.properties")

    public class Window extends JFrame{

    /*

    * Serial

    */

    private static final long serialVersionUID = -3775184725107046658L;

    /*

    * Data

    */

    private JLabel label;

    private JTextArea inputArea;

    private List todoList = new ArrayList();

    /*

    * Constructor

    */

    public Window(@Value("${name} on ${version}") String title, @Value("${window_width}") int width, @Value("${window_height}") int height, @Value("${submit_button}") String submitName,@Value("${remove_button}") String removeName,@Value("${textarea_columns}") int cols){

    super(title);

    setSize(new Dimension(width, height));

    setLayout(new GridLayout(2,1));

    JPanel showPanel = new JPanel();

    JPanel inputPanel = new JPanel();

    label = new JLabel("TODO:
    ");

    showPanel.add(label);

    inputArea = new JTextArea();

    inputArea.setColumns(cols);

    inputPanel.add(inputArea);

    inputPanel.add( new SubmitButton(submitName));

    inputPanel.add( new RemoveButton(removeName));

    getContentPane().add(showPanel);

    getContentPane().add(inputPanel);

    addWindowListener(new MyWindowAdapter());

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    /*

    * Getters & Setters

    */

    public JLabel getLabel() {

    return label;

    }

    public void setLabel(JLabel label) {

    this.label = label;

    }

    public JTextArea getInputArea() {

    return inputArea;

    }

    public void setInputArea(JTextArea inputArea) {

    this.inputArea = inputArea;

    }

    public List getTodoList() {

    return todoList;

    }

    public void setTodoList(List todoList) {

    this.todoList = todoList;

    }

    }

    为什么不起作用? 我没有在控制台中看到任何消息,方面方法未运行。 有人可以解决吗?

    展开全文
  • 待办事项清单 很棒的待办事项清单,可提高您的生产力 关于该项目 这个简单而优雅的待办事项清单可让您保持井井有条,并提高工作效率。 跟踪您的任务并提高您的时间管理技能。 如何使用它: 将您的任务添加到输入...
  • 容易 “待办事项清单”部分Java脚本的“固定待办事项”,后端的登录信息将由ilustrativa的部分登录和保存。
  • :check_mark: JavaScript中的Todolist Arnaud Le Doeuff 创建一个简单的“待办事项列表”。 需要完成的任务。 客观的 有简单的待办事项清单 学习JavaScript
  • ToDo_APP:待办事项列表Java和HTML
  • 待办事项清单 将JavaScript倒入我的浏览器| jQuery的
  • 待办事项清单 HTML,CSS,Java脚本中的待办事项列表 参考: : SB9dPJxVhp0 ab_channel
  • 使用Java编写的待办事项列表应用程序,使用JavaFX和FXML作为UI。 如何使用 下载文件。 跑他们这是使用IntelliJ Idea制作的,因此我不确定您是否可以在Eclipse中打开它。 特征 添加待办事项待办事项标记为已完成...
  • 使用PostgreSQL,MySQL,Oracle,Microsoft SQL Server,Java,Maven,Spring Framework,Thymeleaf,HTML,CSS,JavaScript的待办事项Web应用程序。 在终端的项目目录中,运行命令: java -jar target/todo-0.0.1...
  • ToDoListJsonBackendApp 简单的待办事项清单json后端应用程序,用Java编写(使用Spring Boot)。
  • PerDiem 在Java / Android Studio中编程的“待办事项”列表Android应用程序。
  • Todo App是一个Android应用程序,它允许构建待办事项列表和基本的待办事项管理功能,包括添加新项目,编辑和删除现有项目。 提交人: Brayhan De Aza 花费时间:总共花费2个小时 用户故事 完成以下必需的功能: ...
  • 待办事项清单 一个简单的待办事项清单创建者,使用Javascript制作
  • 【实例简介】SSD8-Ex4待办事项列表答案参考:http://wangbaiyuan.cn/mysql-database-data-released-in-java-web-service-and-operations.html……用户注册新用户可以注册。新用户必须提供用户名和密码。如果提供的...

    【实例简介】

    SSD8-Ex4待办事项列表答案参考:http://wangbaiyuan.cn/mysql-database-data-released-in-java-web-service-and-operations.html

    ……用户注册

    新用户可以注册。新用户必须提供用户名和密码。如果提供的用户名称已经存在,打印一个错误信息。注册成功后,打印一条消息说明注册成功。在新用户注册时,需要为这个新用户创建一个新的待见事项列表对象。

    添加项目

    注册用户可以将项目添加到他们的待办事项清单。每个项目都有一个开始时间和结束时间。参数应包括开始、结束的时间和一个标签。用户应该收到反馈信息,来说明注册是成功还是出错

    【实例截图】

    【核心代码】

    SSD8-Ex4待办事项列表答案参考-wangbaiyuan.cn

    ├── TodoListClient

    │   ├── bin

    │   │   └── cn

    │   │   └── wangbaiyuan

    │   │   ├── AddMeetings.class

    │   │   ├── AddMeetingsResponse.class

    │   │   ├── AddMeetingUsers.class

    │   │   ├── AddMeetingUsersResponse.class

    │   │   ├── ClearMeetings.class

    │   │   ├── ClearMeetingsResponse.class

    │   │   ├── DeleteMeetings.class

    │   │   ├── DeleteMeetingsResponse.class

    │   │   ├── LoginMeetings.class

    │   │   ├── LoginMeetingsResponse.class

    │   │   ├── ObjectFactory.class

    │   │   ├── package-info.class

    │   │   ├── SearchrMeetings.class

    │   │   ├── SearchrMeetingsResponse.class

    │   │   ├── TodoListClient.class

    │   │   ├── TodoListServerInterface.class

    │   │   └── TodoListServerService.class

    │   ├── mysql-connector.jar

    │   └── src

    │   └── cn

    │   └── wangbaiyuan

    │   ├── AddMeetings.class

    │   ├── AddMeetings.java

    │   ├── AddMeetingsResponse.class

    │   ├── AddMeetingsResponse.java

    │   ├── AddMeetingUsers.class

    │   ├── AddMeetingUsers.java

    │   ├── AddMeetingUsersResponse.class

    │   ├── AddMeetingUsersResponse.java

    │   ├── ClearMeetings.class

    │   ├── ClearMeetings.java

    │   ├── ClearMeetingsResponse.class

    │   ├── ClearMeetingsResponse.java

    │   ├── DeleteMeetings.class

    │   ├── DeleteMeetings.java

    │   ├── DeleteMeetingsResponse.class

    │   ├── DeleteMeetingsResponse.java

    │   ├── LoginMeetings.class

    │   ├── LoginMeetings.java

    │   ├── LoginMeetingsResponse.class

    │   ├── LoginMeetingsResponse.java

    │   ├── ObjectFactory.class

    │   ├── ObjectFactory.java

    │   ├── package-info.class

    │   ├── package-info.java

    │   ├── SearchrMeetings.class

    │   ├── SearchrMeetings.java

    │   ├── SearchrMeetingsResponse.class

    │   ├── SearchrMeetingsResponse.java

    │   ├── TodoListClient.java

    │   ├── TodoListServerInterface.class

    │   ├── TodoListServerInterface.java

    │   ├── TodoListServerService.class

    │   └── TodoListServerService.java

    ├── TodoListServer

    │   ├── bin

    │   │   └── cn

    │   │   └── wangbaiyuan

    │   │   ├── TodolistDb.class

    │   │   ├── TodoListInterDbFace.class

    │   │   ├── TodoListServer.class

    │   │   ├── TodoListServerInterface.class

    │   │   └── tools

    │   │   ├── CopyOfMySqlconnect.class

    │   │   └── TimeTool.class

    │   ├── mysql-connector.jar

    │   └── src

    │   └── cn

    │   └── wangbaiyuan

    │   ├── TodolistDb.java

    │   ├── TodoListInterDbFace.java

    │   ├── TodoListServerInterface.java

    │   ├── TodoListServer.java

    │   └── tools

    │   ├── CopyOfMySqlconnect.java

    │   └── TimeTool.java

    └── 使用说明.txt

    16 directories, 65 files

    展开全文
  • 对于很多上班族来说,经常在电脑旁一坐就是一天的时间,很多时候会忙的忘记一些事情,对于这类电脑用户,小编建议大家在电脑上安装一款待办事项提醒软件。今天,小编就给大家带来了一款小巧精致的待办事项软件——...

    对于很多上班族来说,经常在电脑旁一坐就是一天的时间,很多时候会忙的忘记一些事情,对于这类电脑用户,小编建议大家在电脑上安装一款待办事项提醒软件。今天,小编就给大家带来了一款小巧精致的待办事项软件——Wise Reminder。

    Wise Reminder是一款免费实用的桌面便签小工具(待办事项软件),支持重复、循环提醒,可以支持自定义提示音,多种不同的提醒模式,包括单次、每天、每周、每月、每年。

    a51c13ed6df97a6e710ca22bc3c42ca4.png

    软件特色

    1、小巧免费

    2、界面简单易用

    侧边栏包含了“未完成事项”和“已完成事项”,中间则是事项列表。所有需要做的事都可以在一个界面上看到。

    3、多种不同的提醒模式,包括单次、每天、每周、每月、每年。

    4、日程提醒的时间可以精确到秒

    5、到时间会发出声音提醒你

    6、你可以为每个事项写一大段文字

    如果你有一些记事提醒的需求,并且只需在电脑上做出提醒的 (譬如工作上的事只需在上班时,在办公室的电脑上提醒),那么免费的Wise Reminder显然就能满足你。

    7c764e8ba5d4e88a2624ccceb7b148fa.png

    它的应用也不只是我提出的“定时提醒休息”那么简单,你完全也可以将它用做你的工作或生活中的日程安排GTD工具来提高工作效率。总之,Wise Reminder虽不高端但很实用,特别对于一些妹子或电脑小白们来说,还是值得推荐的。

    4ca10a6e0fb05a498ecfe5751b6de8a2.png

    展开全文
  • 待办事项-源码

    2021-02-10 21:49:56
    Java 8上运行。 讲解 使用下表查找您感兴趣的视频,然后使用“发行”列转到该存储库中该教程开始的地方。 视频 释放 描述 从门户创建Web应用程序,并使用Gi​​tHub Actions设置CI / CD 第2部分:待定 发行版2...
  • 一旦用户完成输入任务,他们便能够保存其“待办事项”列表,他们也将能够加载先前保存的“待办事项”列表并进行相应的调整。 正在运行的应用程序 要求: Java 15 GIT(可选) 如果您打算从IDE运行,则IDE能够...
  • 1:创建待办事项的显示与完成待办事项时的显示 2:搜索已经存在的代办事项 3:日历(阳历阴历转换) 代码如下: MainActivity.java如下: public class MainActivity extends AppCompatActivity { private Button ...

    一:实现功能
    1:创建待办事项的显示与完成待办事项时的显示
    2:搜索已经存在的代办事项
    3:日历(阳历阴历转换)
    代码如下:
    MainActivity.java如下:
    public class MainActivity extends AppCompatActivity {
    private Button EXEInout, EXESearch;
    private Button btn_List,btn_Calendar,btn_Complete;
    private static EditText InputContent, SearchContent,SerialNumber,SearchSerialNumber;
    private static EditText GetContent,GetSerialNumber,GetContent1,GetSerialNumber1,GetContent2,GetSerialNumber2;
    private CheckBox checkBox,checkBox1,checkBox2;
    public static int count = 1;
    public static String ID = null;
    public static String Content = null;
    Dao dao = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EXEInout = (Button) findViewById(R.id.exeInput);
        EXESearch = (Button) findViewById(R.id.exeSearch);
        btn_Complete = (Button) findViewById(R.id.Complete);
        btn_List = (Button) findViewById(R.id.List);
        btn_Calendar = (Button) findViewById(R.id.Calendar);
        GetContent = (EditText) findViewById(R.id.GetContent);
        GetSerialNumber = (EditText) findViewById(R.id.GetSerialNumber);//序号
        GetContent1 = (EditText) findViewById(R.id.GetContent1);
        GetSerialNumber1 = (EditText) findViewById(R.id.GetSerialNumber1);//序号
        GetContent2 = (EditText) findViewById(R.id.GetContent2);
        GetSerialNumber2 = (EditText) findViewById(R.id.GetSerialNumber2);//序号
        SerialNumber = (EditText) findViewById(R.id.SerialNumber);
        checkBox = (CheckBox) findViewById(R.id.checkbox);
        checkBox1 = (CheckBox) findViewById(R.id.checkbox1);
        checkBox2 = (CheckBox) findViewById(R.id.checkbox2);
        InputContent = (EditText) findViewById(R.id.inputContent);
        SearchContent = (EditText) findViewById(R.id.SearchContent);
        SearchSerialNumber = (EditText) findViewById(R.id.SearchSerialNumber);
        //用于查找待办事项
        EXESearch.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dao = new Dao(MainActivity.this);
                String SearchID = SearchSerialNumber.getText().toString();
                String Content = dao.Query(SearchID);
                SearchContent.setText(Content);
            }
        });
        //用于添加待办事项
        EXEInout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    dao = new Dao(MainActivity.this);
                    ID = SerialNumber.getText().toString();
                    Content = InputContent.getText().toString();
                    if (ID.equals("") && Content.equals(""))
                    {
                        Toast.makeText(MainActivity.this,"输入的待办事项不能为空",Toast.LENGTH_SHORT).show();
                        return ;
                    }
                    dao.Insert(new DataBase(ID,Content));
                    if (count == 1) {
                        GetSerialNumber.setVisibility(View.VISIBLE);
                        GetContent.setVisibility(View.VISIBLE);
                        checkBox.setVisibility(View.VISIBLE);//可见
                        GetSerialNumber.setText(ID);
                        GetContent.setText(Content);
                    }
                    if (count == 2)
                    {
                        GetSerialNumber1.setVisibility(View.VISIBLE);
                        GetContent1.setVisibility(View.VISIBLE);
                        checkBox1.setVisibility(View.VISIBLE);//可见
                        GetSerialNumber1.setText(ID);
                        GetContent1.setText(Content);
    
                    }
                if (count == 3)
                {
                    GetSerialNumber2.setVisibility(View.VISIBLE);
                    GetContent2.setVisibility(View.VISIBLE);
                    checkBox2.setVisibility(View.VISIBLE);//可见
                    GetSerialNumber2.setText(ID);
                    GetContent2.setText(Content);
    
                }
                count++;
                if (count > 3)
                    Toast.makeText(MainActivity.this,"待办事项存在太多了,请做完一些在添加吧!",Toast.LENGTH_SHORT).show();
                Log.d("Count",count+"");
                Log.d(Dao.TAG,ID);
                Log.d(Dao.TAG,Content);
                //清除数据库专用
                //for (int i = 0; i< 50;i++)
                    //dao.Delete(i+"");
               // setListen();
            }
        });
        //(可见不可见占位置,只是消失,隐藏不会占据屏幕位置)
        //如果被选择就使checkbox,序号,EditText三个为隐藏,并传到另一个一个页面
     //用于提交待办事项(表示已完成)
     btn_Complete.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             Intent intent = null;
             switch (JudgeCheckBoxStatus()) {
                 case 1:
                     GetContent.setVisibility(View.GONE);
                     GetSerialNumber.setVisibility(View.GONE);
                     checkBox.setVisibility(View.GONE);
                     count--;//完成一件待办事项,减少一次计数,方便下一次添加待办事项
                     intent = new Intent(MainActivity.this, Completed.class);
                     break;
                 case 2:
                     GetContent1.setVisibility(View.GONE);
                     GetSerialNumber1.setVisibility(View.GONE);
                     checkBox1.setVisibility(View.GONE);
                     count--;//完成一件待办事项,减少一次计数,方便下一次添加待办事项
                     intent = new Intent(MainActivity.this, Completed.class);
                     break;
                 case 3:
                     GetContent2.setVisibility(View.GONE);
                     GetSerialNumber2.setVisibility(View.GONE);
                     checkBox2.setVisibility(View.GONE);
                     count--;//完成一件待办事项,减少一次计数,方便下一次添加待办事项
                     intent = new Intent(MainActivity.this, Completed.class);
                     break;
             }
             startActivity(intent);
         }
     });
     //跳转到日历视图
     btn_Calendar.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             Intent intent = null;
             intent = new Intent(MainActivity.this, CalendarDemo.class);
                    startActivity(intent);
         }
     });
    
    }
    //用于判断是否已经完成,存在漏洞
    int  JudgeCheckBoxStatus(){
        if (checkBox.isChecked() == true){
            return 1;
        }
        if (checkBox1.isChecked() == true){
            return 2;
        }
        if (checkBox2.isChecked() == true){
            return 3;
        }
        return 0;
    }
    }
    /***************************************************************************分割线*******************************************************************/
    

    在这里插入图片描述
    activity_main.xml代码如下:









        <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dp"
                android:textAllCaps="false"
                android:text="----------------全部----------------"
                android:textSize="20sp"
                android:gravity="center"
                android:layout_below="@+id/SearchContent"/>
        <CheckBox
                android:id="@+id/checkbox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="0dp"
                android:layout_marginTop="105dp"
                android:visibility="invisible"
                android:layout_below="@id/Search"
    
        />
        <EditText
                android:id="@+id/GetSerialNumber"
                android:layout_height="wrap_content"
                android:layout_width="40dp"
                android:text=""
                android:layout_marginLeft="40dp"
                android:layout_marginTop="85dp"
                android:textSize="25sp"
                android:visibility="invisible"
                android:layout_below="@+id/SearchContent"
    
        />
        <EditText
                android:id="@+id/GetContent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text=""
                android:textSize="25sp"
                android:layout_marginTop="86dp"
                android:layout_marginLeft="80dp"
                android:visibility="invisible"
                android:layout_below="@+id/exeSearch"
    
    
        />
        <CheckBox
                android:id="@+id/checkbox1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="0dp"
                android:layout_marginTop="50dp"
                android:visibility="invisible"
                android:layout_below="@id/checkbox"
    
        />
        <EditText
                android:id="@+id/GetSerialNumber1"
                android:layout_height="wrap_content"
                android:layout_width="40dp"
                android:text=""
                android:layout_marginLeft="40dp"
                android:layout_marginTop="20dp"
                android:textSize="25sp"
                android:visibility="invisible"
                android:layout_below="@+id/GetSerialNumber"
    
        />
        <EditText
                android:id="@+id/GetContent1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text=""
                android:textSize="25sp"
                android:layout_marginTop="20dp"
                android:layout_marginLeft="80dp"
                android:visibility="invisible"
                android:layout_below="@+id/GetContent"
        />
        <CheckBox
                android:id="@+id/checkbox2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="0dp"
                android:layout_marginTop="50dp"
                android:visibility="invisible"
                android:layout_below="@id/checkbox1"
    
        />
        <EditText
                android:id="@+id/GetSerialNumber2"
                android:layout_height="wrap_content"
                android:layout_width="40dp"
                android:text=""
                android:layout_marginLeft="40dp"
                android:layout_marginTop="20dp"
                android:textSize="25sp"
                android:visibility="invisible"
                android:layout_below="@+id/GetSerialNumber1"
    
        />
        <EditText
                android:id="@+id/GetContent2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text=""
                android:textSize="25sp"
                android:layout_marginTop="22dp"
                android:layout_marginLeft="80dp"
                android:visibility="invisible"
                android:layout_below="@+id/GetContent1"
        />
        <Button
                android:id="@+id/List"
                android:layout_height="50dp"
                android:layout_width="120dp"
                android:text="List"
                android:textAllCaps="false"
                android:layout_marginTop="500dp"
                android:layout_alignParentLeft="true"
            />
        <Button
                android:id="@+id/Complete"
                android:layout_height="50dp"
                android:layout_width="120dp"
                android:layout_marginLeft="150dp"
                android:text="Complete"
                android:textAllCaps="false"
                android:layout_marginTop="90dp"
                android:layout_below="@+id/GetContent2"/>
        <Button
                android:id="@+id/Calendar"
                android:layout_height="50dp"
                android:layout_width="120dp"
                android:text="Calendar"
                android:textAllCaps="false"
                android:layout_marginTop="500dp"
                android:layout_alignParentRight="true"
                />
    
    </RelativeLayout>
    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
    
    </RelativeLayout>
    
    /***************************************************************************分割线*******************************************************************/ Completed.java代码如下 public class Completed extends AppCompatActivity { private Button btn_Receive; private RecyclerView recyclerView; private List dataBaseList = new ArrayList<>(); private MyRecyclerView myRecyclerView; private DataBase dataBase; private TextView Title; private int count = 1; Dao dao = null; private String GetContent = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_completed);
        Title = (TextView) findViewById(R.id.Title);
        recyclerView = (RecyclerView) findViewById(R.id.RecyclerViewItem);
        btn_Receive = (Button) findViewById(R.id.EXE_Receive);
    
        //设置布局管理器
        LinearLayoutManager layoutManager = new LinearLayoutManager(Completed.this);
        recyclerView.setLayoutManager(layoutManager);
        //设置适配器
        myRecyclerView = new MyRecyclerView(dataBaseList);
        recyclerView.setAdapter(myRecyclerView);
    
        btn_Receive.setOnClickListener(new Button.OnClickListener() {
            DataBase dataBase = new DataBase();
            @Override
            public void onClick(View v) {
                String CompletedID = MainActivity.ID;
                String CompletedContent = MainActivity.Content;
                if (! ("".equals(CompletedID)) && ( "".equals(CompletedContent)))
                {
                    Toast.makeText(Completed.this,"内容不能为空",Toast.LENGTH_SHORT).show();
                }
                else {
                    dataBase = new DataBase(CompletedID, CompletedContent);//获取实例
                    dataBaseList.add(dataBase);//添加数据
                    myRecyclerView.notifyItemChanged(dataBaseList.size() - 1);
                    recyclerView.scrollToPosition(dataBaseList.size() - 1);
                }
            }
        });
    }
    

    /********分割线/
    activity_completed.xml界面如图所示:
    在这里插入图片描述

    activity_completed.xm代码如下:

    <TextView
            android:id="@+id/Title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="已完成事项"
            android:textSize="25sp"
            android:gravity="center"
            android:textColor="#090909"
            android:layout_marginBottom="20dp"/>
    <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/RecyclerViewItem"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    <Button
     android:id="@+id/EXE_Receive"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="EXE_Receive"
     android:textAllCaps="false"
     android:layout_marginTop="20dp"/>
    
    /***************************************************************************分割线*******************************************************************/ DataBase.java(实例化数据类) 代码如下: public class DataBase { private String id; private String Content; private static final int Check = 1;//用于判断状态待办事项是否已经完成 private static final int NotCheck = 0; public String getId() { return id; } public String getContent() { return Content; }
    public DataBase() {
        super();
    }
    public DataBase(String id, String Content) {
        super();
        this.id = id;
        this.Content = Content;
    }
    }
    

    /********分割线/
    Sqlite数据库代码如下(实现CRUD)
    public class Dao {
    public static final String TAG = “DataBase”;
    private Helper helper ;
    private SQLiteDatabase DB;
    public Dao(Context context)
    {
    helper = new Helper(context);
    }
    public void Insert(DataBase dataBase){
    DB = helper.getReadableDatabase();
    if (DB.isOpen())
    {
    ContentValues values = new ContentValues();
    values.put(Helper.ID,dataBase.getId());
    values.put(Helper.Content,dataBase.getContent());
    long RowId = DB.insert(Helper.TableName,null,values);
    if(RowId == -1)
    Log.i(TAG, “数据插入失败!”);
    else
    Log.i(TAG, “数据插入成功!”+RowId);
    }
    }
    //根据序号删除数据
    //当前id为暂不为序号
    public void Delete(String id){
    DB = helper.getReadableDatabase();
    if (DB.isOpen()){
    String whereClause = “ID = ?”;
    String[] whereArgs = {id + “”};
    int count = DB.delete(Helper.TableName, whereClause, whereArgs);
    if (count > 0)
    Log.i(TAG, "删除了: " + count + “行”);
    else
    Log.i(“todolist”, “数据未删除!”);
    DB.close(); // 数据库关闭
    }
    }
    public void Update(String id ,String Content){
    DB = helper.getWritableDatabase();
    if(DB.isOpen()) { // 如果数据库打开, 执行添加的操作
    ContentValues values = new ContentValues();
    values.put(“ID”,id);
    values.put(“Content”, Content);
    int count = DB.update(Helper.TableName, values, “_ID = ?”, new String[]{id + “”});
    if (count > 0)
    Log.i(TAG, "修改了: " + count + “行”);
    else
    Log.i(“todolist”, “数据未删除!”);
    DB.close(); // 数据库关闭
    }
    }
    public String Query(String id){
    DB = helper.getReadableDatabase();
    //selection查询子句的条件,可以使用主键查询
    String[] columns = {“ID”, “Content”}; // 需要的列
    String selection = “ID = ?”;
    String[] selectionArgs = {id + “”};
    Cursor cursor = DB.query(Helper.TableName,columns,selection,selectionArgs,null,null,null);
    if (cursor.moveToFirst())
    {
    if(cursor != null && cursor.moveToFirst()) {
    //String _id = cursor.getString(0);
    String Content = cursor.getString(1);
    DB.close();
    return Content;
    }
    cursor.close();
    DB.close();
    }
    return null;
    }
    public List QueryAll() {
    DB = helper.getReadableDatabase(); // 获得一个只读的数据库对象
    if(DB.isOpen()) {
    String[] columns = {“ID”, “Content”}; // 需要的列
    String selection = null; // 选择条件, 给null查询所有
    String[] selectionArgs = null; // 选择条件的参数, 会把选择条件中的? 替换成数据中的值
    String groupBy = null; // 分组语句 group by name
    String having = null; // 过滤语句
    String orderBy = null; // 排序
    Cursor cursor = DB.query(Helper.TableName, columns, selection, selectionArgs, groupBy, having, orderBy);
    String id;
    String Content;
    if(cursor != null && cursor.getCount() > 0) {
    List DataBaseList = new ArrayList();
    while(cursor.moveToNext()) { // 向下移一位, 知道最后一位, 不可以往下移动了, 停止.
    id = cursor.getString(0);
    Content = cursor.getString(1);
    DataBaseList.add(new DataBase(id, Content));
    }
    DB.close();
    return DataBaseList;
    }
    DB.close();
    }
    return null;
    }
    }
    /********分割线/
    Helper类代码如下(数据库创建类继承SQLiteOpenHelper)
    public class Helper extends SQLiteOpenHelper {
    public static final String TableName = “ToDoList”;
    public static final String ID = “ID”;
    public static final String Content = “Content”;
    private static final String DataBase = “todolist.db”;
    private static final SQLiteDatabase.CursorFactory Factory = null;
    public static final int version = 1;

    public Helper(@Nullable Context context) {
        super(context, DataBase, Factory, version);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        // 操作数据库
        String sql = "create table " + TableName + "("+ID+" varchar(20) primary key, "+Content+" varchar(20));";
        db.execSQL(sql);
    }
    
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("drop table if exists "+TableName);
        onCreate(db);
    }
    

    }
    /********分割线/
    MyRecyclerView类代码如下(继承RecyclerView.Adapter)
    //使用此类必须先导入闭包implementation ‘com.android.support:recyclerview-v7:27.1.1’(闭包版本很多)
    public class MyRecyclerView extends RecyclerView.Adapter<MyRecyclerView.ViewHolder> {
    private List DataBaseList;
    public MyRecyclerView (List DataBaseList)
    {
    this.DataBaseList = DataBaseList;
    }

    @NonNull
    @Override
    //获取布局
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,parent,false);
        return new ViewHolder(view);
    }
    //给子控件赋值
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
          DataBase dataBase = DataBaseList.get(position);
          holder.checkBox.setChecked(true);//设置勾选
          holder.SearchSerialNumber.setText(dataBase.getId());//设置完成待办事项的序号
          holder.Content.setText(dataBase.getContent());//设置完成待办事项的内容
    }
    
    @Override
    public int getItemCount() {
        return DataBaseList.size();
    }
    static class ViewHolder extends RecyclerView.ViewHolder {
        CheckBox checkBox;
        EditText SearchSerialNumber,Content;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            checkBox = (CheckBox) itemView.findViewById(R.id.RecyclerViewCheckbox);
            SearchSerialNumber = (EditText) itemView.findViewById(R.id.RecyclerViewSerialNumber);
            Content = (EditText) itemView.findViewById(R.id.RecyclerViewContent);
        }
    }
    

    }
    /********分割线/
    Lunar类(用于日历的阳历和阴历转换)
    package com.example.todolistdemo;

    import android.annotation.SuppressLint;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    public class Lunar {
    private final int year;
    private final int month;
    private final int day;
    private boolean leap;
    //阴历月份表示形式
    final static String[] LunarMonthStyle = {“一”, “二”, “三”, “四”, “五”, “六”, “七”, “八”, “九”, “十”, “十一”, “十二”};
    @SuppressLint(“SimpleDateFormat”)
    static SimpleDateFormat chineseDateFormat = new SimpleDateFormat(“yyyy年MM月dd日”);
    final static long[] lunarInfo = new long[]
    {
    0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,
    0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977,
    0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970,
    0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,
    0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557,
    0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0,
    0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0,
    0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,
    0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570,
    0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0,
    0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5,
    0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930,
    0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530,
    0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45,
    0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0};

    //====== 传回农历 y年的总天数
    final private static int yearDays(int y) {
        int i, sum = 348;
        for (i = 0x8000; i > 0x8; i >>= 1) {
            if ((lunarInfo[y - 1900] & i) != 0)
                sum += 1;
        }
        return (sum + leapDays(y));
    }
    
    
    //====== 传回农历 y年闰月的天数
    final private static int leapDays(int y) {
        if (leapMonth(y) != 0) {
            if ((lunarInfo[y - 1900] & 0x10000) != 0)
                return 30;
            else
                return 29;
        } else
            return 0;
    }
    
    
    //====== 传回农历 y年闰哪个月 1-12 , 没闰传回 0
    final private static int leapMonth(int y) {
        return (int) (lunarInfo[y - 1900] & 0xf);
    }
    
    
    //====== 传回农历 y年m月的总天数
    final private static int monthDays(int y, int m) {
        if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)
            return 29;
        else
            return 30;
    }
    
    
    //====== 传回农历 y年的生肖
    final public String animalsYear() {
        final String[] Animals = new String[]{"鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"};
        return Animals[(year - 4) % 12];
    }
    
    
    //====== 传入 月日的offset 传回干支, 0=甲子
    final private static String cyclicalm(int num) {
        final String[] TianGan = new String[]{"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
        final String[] JiaZi = new String[]{"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};
        return (TianGan[num % 10] + JiaZi[num % 12]);
    }
    
    
    //====== 传入 offset 传回干支, 0=甲子
    final public String cyclical() {
        int num = year - 1900 + 36;
        return (cyclicalm(num));
    }
    public String getLunarMonthString() {
        // TODO Auto-generated method stub
        return null;
    }
    
    
    public Lunar(Calendar cal) {
        @SuppressWarnings("unused") int yearCyl, monCyl, dayCyl;
        int leapMonth = 0;
        Date baseDate = null;
        try {
            baseDate = chineseDateFormat.parse("1900年1月31日");
        } catch (ParseException e) {
            e.printStackTrace(); //To change body of catch statement use Options | File Templates.
        }
    
    
        //求出和1900年1月31日相差的天数
        assert baseDate != null;
        int offset = (int) ((cal.getTime().getTime() - baseDate.getTime()) / 86400000L);
        dayCyl = offset + 40;
        monCyl = 14;
    
    
        //用offset减去每农历年的天数
        // 计算当天是农历第几天
        //i最终结果是农历的年份
        //offset是当年的第几天
        int iYear, daysOfYear = 0;
        for (iYear = 1900; iYear < 2050 && offset > 0; iYear++) {
            daysOfYear = yearDays(iYear);
            offset -= daysOfYear;
            monCyl += 12;
        }
        if (offset < 0) {
            offset += daysOfYear;
            iYear--;
            monCyl -= 12;
        }
        //农历年份
        year = iYear;
    
        yearCyl = iYear - 1864;
        leapMonth = leapMonth(iYear); //闰哪个月,1-12
        leap = false;
    
    
        //用当年的天数offset,逐个减去每月(农历)的天数,求出当天是本月的第几天
        int iMonth, daysOfMonth = 0;
        for (iMonth = 1; iMonth < 13 && offset > 0; iMonth++) {
            //闰月
            if (leapMonth > 0 && iMonth == (leapMonth + 1) && !leap) {
                --iMonth;
                leap = true;
                daysOfMonth = leapDays(year);
            } else
                daysOfMonth = monthDays(year, iMonth);
    
    
            offset -= daysOfMonth;
            //解除闰月
            if (leap && iMonth == (leapMonth + 1)) leap = false;
            if (!leap) monCyl++;
        }
        //offset为0时,并且刚才计算的月份是闰月,要校正
        if (offset == 0 && leapMonth > 0 && iMonth == leapMonth + 1) {
            if (leap) {
                leap = false;
            } else {
                leap = true;
                --iMonth;
                --monCyl;
            }
        }
        //offset小于0时,也要校正
        if (offset < 0) {
            offset += daysOfMonth;
            --iMonth;
            --monCyl;
        }
        month = iMonth;
        day = offset + 1;
    }
    
    
    public static String getChinaDayString(int day) {
        String[] chineseTen = {"初", "十", "廿", "三"};
        int n = day % 10 == 0 ? 9 : day % 10 - 1;
        if (day > 30)
            return "";
        if (day == 10)
            return "初十";
        else
            return chineseTen[day / 10] + LunarMonthStyle[n];
    }
    
    
    public String toString() {
        return (leap ? "闰" : "") + LunarMonthStyle[month - 1] + "月" + getChinaDayString(day);
    }
    

    }
    /********分割线/
    日历类主要关于CalendarView再次不多介绍
    图所示:![在这里插入图片描述](https://img-blog.csdnimg.cn/2021013116150059.png
    在这里插入图片描述
    //麻烦大家多给一点建议

    展开全文
  • Java脚本中的待办事项列表 我正在构建此简单的待办事项列表,该列表允许创建待办事项列表,将其标记为已完成以及从列表中删除待办事项。 如何建立待办事项清单 点击Enter按钮添加待办事项 我有一个new-todo输入字段...
  • 与全球千万用户一起,在滴答清单中记录和规划大小事务、用更少的时间达成目标,从冗杂的待办事项中解脱出来。 主要功能: 使用滴答清单,规划好每一天。 从记录到管理,滴答清单能帮你把一切打理得井井有条,你可以...
  • 待办事项清单应用程式 带有Spring Boot,React和MySQL的待办事项清单应用程序,可应对代码挑战 项目在Spring Boot上具有后端,在ReactJs上具有前端。 选择了MySQL DB。 项目已部署到Heroku和ClearDB。 您可以检查...
  • 待办事项 该项目是JavaScript模块中的Microverse课程的一部分! 目录 关于该项目 这是一个小型的待办事项应用程序,用户可以在其中创建项目并添加要执行的任务列表。 如果未指定任何项目,则所有任务都可以保存在...
  • SSD8-Ex4待办事项列表答案参考:http://wangbaiyuan.cn/mysql-database-data-released-in-java-web-service-and-operations.html ……用户注册 新用户可以注册。新用户必须提供用户名和密码。如果提供的用户名称已经...
  • 待办事项 Node js中的项目使用了快速正文解析器和ejs 内置 Java脚本 语义HTML5标记 CSS EJS 节点 表达 Mongo数据库 猫鼬 身体解析器 洛达什 链接 解决方案URL: : 实时网站网址: 用户应该能够: 根据组件的...
  • 任务是构建待办事项列表应用程序。 该应用程序将允许用户创建新任务,为其分配标题和截止日期,并选择该任务所属的项目。 他们将需要通过命令行使用基于文本的用户界面(提示:有关此思想,请参阅BlueJ World of ...
  • lista-de-tarefas-back-end:Projeto后端请参见“使用Spring Boot和Angular实现Java完整堆栈”,da Udemy。 乌拉圭回合避难所(待办事项清单)

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 255
精华内容 102
关键字:

java待办事项

java 订阅