学习记录(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;
}
}

浙公网安备 33010602011771号