学习记录(3.29)

  学习时长:7h

  代码行数:约600行

  今天鸡脚被占了,没有上课。乐队练习进行了很长时间,晚上抽时间把app进行了完善,大概完成了部分功能,接下来就是集合团队进行页面的讨论了,大致把页面内容定了下来。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="广告位招租"
            android:textSize="50dp"/>
    </LinearLayout>
    <Button
        android:id="@+id/b_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="选择日期"/>
    <TextView
        android:id="@+id/tv_data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <EditText
        android:id="@+id/tv_zhuti"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入打卡主题"
        android:inputType="text"/>
    <EditText
        android:id="@+id/tv_neirong"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="50dp"
        android:hint="请输入打卡内容"
        android:inputType="text"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <Button
        android:id="@+id/b_start"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="选择开始时间"/>
    <TextView
        android:id="@+id/tv_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <Button
        android:id="@+id/b_end"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="选择结束时间"/>
    <TextView
        android:id="@+id/tv_end"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    </LinearLayout>
    <Button
        android:id="@+id/dakaa"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="打卡"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="广告位招租"
            android:textSize="50dp"/>
    </LinearLayout>
</LinearLayout>

  

package com.example.myapplication1;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;

import bean.Bean;
import database.UserDBHelper;
import util.ToastUtil;

public class Daka extends AppCompatActivity implements View.OnClickListener {

    private TextView tv_data;
    private TextView tv_start;
    private TextView tv_end;
    private EditText tv_zhuti;
    private UserDBHelper mHelper;
    private EditText tv_neirong;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_daka);
        findViewById(R.id.dakaa).setOnClickListener(this);
        findViewById(R.id.b_data).setOnClickListener(this);
        findViewById(R.id.b_start).setOnClickListener(this);
        findViewById(R.id.b_end).setOnClickListener(this);
        tv_data = findViewById(R.id.tv_data);
        tv_start = findViewById(R.id.tv_start);
        tv_end = findViewById(R.id.tv_end);
        tv_zhuti = findViewById(R.id.tv_zhuti);
        tv_neirong = findViewById(R.id.tv_neirong);

        findViewById(R.id.dakaa).setOnClickListener(this);
    }

    protected  void onStart(){
        super.onStart();
        mHelper = UserDBHelper.getInstance(this);
        mHelper.openReadLink();
        mHelper.openWriteLink();
    }

    protected void onStop(){
        super.onStop();
        mHelper.closeLink();
    }

    @Override
    public void onClick(View view) {
        Bean bean = null;
        switch (view.getId()){
            case R.id.b_data:
                int a,b,c;
                Calendar calendar = Calendar.getInstance();
                a=calendar.get(Calendar.YEAR);
                b=calendar.get(Calendar.MONTH);
                c=calendar.get(Calendar.DAY_OF_MONTH);
                DatePickerDialog dialog = new DatePickerDialog(this , this::onDataSet , a , b , c);
                dialog.show();
                break;
            case R.id.b_start:
                Calendar calendar1 = Calendar.getInstance();
                TimePickerDialog tdialog = new TimePickerDialog(this, this::onTimeSet,calendar1.get(Calendar.HOUR_OF_DAY),calendar1.get(Calendar.MINUTE),true);
                tdialog.show();
                break;
            case R.id.b_end:
                Calendar calendar2 = Calendar.getInstance();
                TimePickerDialog edialog = new TimePickerDialog(this, this::onTimeSet1,calendar2.get(Calendar.HOUR_OF_DAY),calendar2.get(Calendar.MINUTE),true);
                edialog.show();
                break;
            case R.id.dakaa:
                String Data = tv_data.getText().toString();
                String Zhuti = tv_zhuti.getText().toString();
                String Neirong = tv_neirong.getText().toString();
                String Stime = tv_start.getText().toString();
                String Etime = tv_end.getText().toString();
                bean = new Bean(Data,
                        Zhuti,
                        Neirong,
                        Stime,
                        Etime);
                if(mHelper.insert(bean)>0){
                    ToastUtil.show(this,"打卡成功");
                }
                break;
        }
    }
    public void onTimeSet(TimePicker view, int hourOfday, int minute){
        String desc =String.format("%d:%d",hourOfday,minute);
        tv_start.setText(desc);
    }
    public void onTimeSet1(TimePicker view, int hourOfday, int minute){
        String desc =String.format("%d:%d",hourOfday,minute);
        tv_end.setText(desc);
    }
    public void onDataSet (DatePicker view, int year,int month, int dayOfMonth) {
        String desc = String.format("%d年%d月%d日",year,month+1,dayOfMonth);
        tv_data.setText(desc);
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="修改打卡"
            android:textSize="50dp"/>
    </LinearLayout>
    <Button
        android:id="@+id/btn_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="选择日期"/>
    <TextView
        android:id="@+id/t_data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <EditText
        android:id="@+id/t_zhuti"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入打卡主题"
        android:inputType="text"/>
    <EditText
        android:id="@+id/t_neirong"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="50dp"
        android:hint="请输入打卡内容"
        android:inputType="text"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_start"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="选择开始时间"/>
        <TextView
            android:id="@+id/t_start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_end"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="选择结束时间"/>
        <TextView
            android:id="@+id/t_end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>
    <Button
        android:id="@+id/btn_updat"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="修改"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="广告位招租"
            android:textSize="50dp"/>
    </LinearLayout>
</LinearLayout>

  

package com.example.myapplication1;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;

import bean.Bean;
import database.UserDBHelper;
import util.ToastUtil;

public class Update extends AppCompatActivity implements View.OnClickListener {
    private TextView t_data;
    private TextView t_start;
    private TextView t_end;
    private EditText t_zhuti;
    private UserDBHelper mHelper;
    private EditText t_neirong;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_update);
        findViewById(R.id.btn_updat).setOnClickListener(this);
        findViewById(R.id.btn_data).setOnClickListener(this);
        findViewById(R.id.btn_start).setOnClickListener(this);
        findViewById(R.id.btn_end).setOnClickListener(this);
        t_data = findViewById(R.id.t_data);
        t_start = findViewById(R.id.t_start);
        t_end = findViewById(R.id.t_end);
        t_zhuti = findViewById(R.id.t_zhuti);
        t_neirong = findViewById(R.id.t_neirong);

        findViewById(R.id.btn_updat).setOnClickListener(this);
    }

    protected void onStart() {
        super.onStart();
        mHelper = UserDBHelper.getInstance(this);
        mHelper.openReadLink();
        mHelper.openWriteLink();
    }

    protected void onStop() {
        super.onStop();
        mHelper.closeLink();
    }

    @Override
    public void onClick(View view) {
        Bean bean = null;
        switch (view.getId()) {
            case R.id.btn_data:
                int a, b, c;
                Calendar calendar = Calendar.getInstance();
                a = calendar.get(Calendar.YEAR);
                b = calendar.get(Calendar.MONTH);
                c = calendar.get(Calendar.DAY_OF_MONTH);
                DatePickerDialog dialog = new DatePickerDialog(this, this::onDataSet, a, b, c);
                dialog.show();
                break;
            case R.id.btn_start:
                Calendar calendar1 = Calendar.getInstance();
                TimePickerDialog tdialog = new TimePickerDialog(this, this::onTimeSet, calendar1.get(Calendar.HOUR_OF_DAY), calendar1.get(Calendar.MINUTE), true);
                tdialog.show();
                break;
            case R.id.btn_end:
                Calendar calendar2 = Calendar.getInstance();
                TimePickerDialog edialog = new TimePickerDialog(this, this::onTimeSet1, calendar2.get(Calendar.HOUR_OF_DAY), calendar2.get(Calendar.MINUTE), true);
                edialog.show();
                break;
            case R.id.btn_updat:
                String Data = t_data.getText().toString();
                String Zhuti = t_zhuti.getText().toString();
                String Neirong = t_neirong.getText().toString();
                String Stime = t_start.getText().toString();
                String Etime = t_end.getText().toString();
                bean = new Bean(Data,
                        Zhuti,
                        Neirong,
                        Stime,
                        Etime);
                if (mHelper.update(bean) > 0) {
                    ToastUtil.show(this, "修改成功");
                }
                break;
        }
    }

    public void onTimeSet(TimePicker view, int hourOfday, int minute) {
        String desc = String.format("%d:%d", hourOfday, minute);
        t_start.setText(desc);
    }

    public void onTimeSet1(TimePicker view, int hourOfday, int minute) {
        String desc = String.format("%d:%d", hourOfday, minute);
        t_end.setText(desc);
    }

    public void onDataSet(DatePicker view, int year, int month, int dayOfMonth) {
        String desc = String.format("%d年%d月%d日", year, month + 1, dayOfMonth);
        t_data.setText(desc);
    }

    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {
        super.onPointerCaptureChanged(hasCapture);
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="删除打卡"
            android:textSize="50dp"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打卡主题"/>
    <EditText
        android:id="@+id/tv_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入要删除的打卡主题"
        android:inputType="text"/>
    </LinearLayout>
   <Button
       android:id="@+id/btn_shanchu"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="删除"/>
</LinearLayout>

  

package com.example.myapplication1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import bean.Bean;
import database.UserDBHelper;
import util.ToastUtil;

public class Delete extends AppCompatActivity implements View.OnClickListener {

    private EditText tv_name;
    private UserDBHelper mHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_delete);
        tv_name = findViewById(R.id.tv_name);
        findViewById(R.id.btn_shanchu).setOnClickListener(this);
    }

    protected  void onStart(){
        super.onStart();
        mHelper = UserDBHelper.getInstance(this);
        mHelper.openReadLink();
        mHelper.openWriteLink();
    }

    protected void onStop(){
        super.onStop();
        mHelper.closeLink();
    }

    @Override
    public void onClick(View view) {
        Bean bean = null;
        switch (view.getId()) {
            case R.id.btn_shanchu:
                String Zhuti = tv_name.getText().toString();
                if(mHelper.deleteByZhuti(Zhuti)>0){
                    ToastUtil.show(this,"删除成功");
                }
        }
    }
}

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="查询打卡"
            android:textSize="50dp"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"/>
    <Button
        android:id="@+id/btn_chaxunn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="查询"/>
    <TextView
        android:id="@+id/tv_act_look"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text=""/>
</LinearLayout>

  

package com.example.myapplication1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.List;

import bean.Bean;
import database.UserDBHelper;
import util.ToastUtil;

public class Chaxun extends AppCompatActivity {
    private UserDBHelper mHelper;
    private List<Bean> bList;
    private LinearLayout ll_id;
    private TextView tv_act_look;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chaxun);
        ll_id = findViewById(R.id.ll_id);
        findViewById(R.id.btn_chaxunn).setOnClickListener(this::onClick);
        tv_act_look=findViewById(R.id.tv_act_look);
    }
    protected  void onStart(){
        super.onStart();
        mHelper = UserDBHelper.getInstance(this);
        mHelper.openReadLink();
        mHelper.openWriteLink();
    }

    protected void onStop(){
        super.onStop();
        mHelper.closeLink();
    }

    public void onClick(View view) {
        Bean bean = null;
        switch (view.getId()) {
            case R.id.btn_chaxunn:
                ll_id.removeAllViews();
                List<Bean> list = mHelper.queryAll();
                if(list.size()==0){
                    return;
                }
                for(Bean b : list){
                    String ul = "";
                    for(int i=0; i<list.size();i++){
                        ul+=list.get(i).Data +"    "+list.get(i).Zhuti+"    "+list.get(i).Neirong+"    "+list.get(i).Stime+"    "+list.get(i).Etime+'\n';
                        tv_act_look.setText(ul);
                    }
                }
                break;
        }
    }
}

  

package database;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;
import java.util.List;

import bean.Bean;

public class UserDBHelper extends SQLiteOpenHelper {

    private static final String DB_NAME = "user.db";
    private static final String TABLE_NAME = "daka";
    private static final int DB_VERSION = 1;
    private static UserDBHelper mHelper = null;
    private SQLiteDatabase mRDB = null;
    private SQLiteDatabase mWDB = null;
    private Cursor cursor;

    private UserDBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    public SQLiteDatabase openReadLink() {
        if (mRDB == null || !mRDB.isOpen()) {
            mRDB = mHelper.getReadableDatabase();
        }
        return mRDB;
    }

    public SQLiteDatabase openWriteLink() {
        if (mWDB == null || !mWDB.isOpen()) {
            mWDB = mHelper.getWritableDatabase();
        }
        return mWDB;
    }

    public void closeLink() {
        if (mRDB != null && mRDB.isOpen()) {
            mRDB.close();
            ;
            mRDB = null;
        }
        if (mWDB != null && mWDB.isOpen()) {
            mWDB.close();
            mWDB = null;
        }
    }

    public static UserDBHelper getInstance(Context context) {
        if (mHelper == null) {
            mHelper = new UserDBHelper(context);
        }
        return mHelper;
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (" +
                "Data VARCHAR NOT NULL," +
                "Zhuti VARCHAR NOT NULL," +
                "Neirong VARCHAR NOT NULL," +
                "Stime VRCHAR NOT NULL," +
                "Etime VARCHAR NOT NULL);";
        sqLiteDatabase.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

    public long insert(Bean bean) {
        ContentValues values = new ContentValues();
        values.put("Data", bean.Data);
        values.put("Zhuti", bean.Zhuti);
        values.put("Neirong", bean.Neirong);
        values.put("Stime", bean.Stime);
        values.put("Etime", bean.Etime);
        return mWDB.insert(TABLE_NAME, null, values);
    }

    public long deleteByZhuti(String Zhuti) {
        return mWDB.delete(TABLE_NAME, "Zhuti=?", new String[]{Zhuti});
    }

    public long update(Bean bean) {
        ContentValues values = new ContentValues();
        values.put("Data", bean.Data);
        values.put("Zhuti", bean.Zhuti);
        values.put("Neirong", bean.Neirong);
        values.put("Stime", bean.Stime);
        values.put("Etime", bean.Etime);
        return mWDB.update(TABLE_NAME, values, "Zhuti=?", new String[]{bean.Zhuti});
    }

    public List<Bean> queryAll() {
        List<Bean> list = new ArrayList<>();

        Cursor cursor = mRDB.query(TABLE_NAME, null, null, null, null, null, null);
        while (cursor.moveToNext()) {
            Bean bean = new Bean();
            bean.Data = cursor.getString(0);
            bean.Zhuti = cursor.getString(1);
            bean.Neirong = cursor.getString(2);
            bean.Stime = cursor.getString(3);
            bean.Etime = cursor.getString(4);
            list.add(bean);
        }
        return list;
    }

    public Bean queryByZhuti(String Zhuti) {
        Bean bean = null;
        cursor = mRDB.query(TABLE_NAME, null, "Zhuti=?", new String[]{String.valueOf(Zhuti)}, null, null, null);
        if (cursor.moveToNext()) {
            bean = new Bean();
            bean.Data = cursor.getString(0);
            bean.Zhuti = cursor.getString(1);
            bean.Neirong = cursor.getString(2);
            bean.Stime = cursor.getString(3);
            bean.Etime = cursor.getString(4);
        }
        return bean;
    }
}

  

posted @ 2023-03-29 21:11  霍普金斯大学丁真  阅读(10)  评论(0)    收藏  举报