Android每日打卡APP-主要代码
这是此次个人作业我的主要代码:
介绍可以见我的上一篇博客:https://www.cnblogs.com/rsy-bxf150/p/17228332.html
完整源码也可以见我的github:https://github.com/BXF-Aurora168/MyPractice-AndroidApp
代码(稍长):
package com.example.clockappliction; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Student; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btn_login, btn_reg; private EditText et_log_id,et_log_password; private CheckBox cb_save1; private String username,password; SharedPreferences sp = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sp = this.getSharedPreferences("userinfo", Context.MODE_PRIVATE); btn_login = (Button) findViewById(R.id.btn_login); btn_login.setOnClickListener(this); btn_reg = (Button) findViewById(R.id.btn_reg); btn_reg.setOnClickListener(this); et_log_id = (EditText) findViewById(R.id.et_log_id); et_log_password = (EditText) findViewById(R.id.et_log_password); cb_save1 = (CheckBox) findViewById(R.id.cb_save1); if (sp.getBoolean("CheckBoxLogin", false)) { et_log_id.setText(sp.getString("username", null)); et_log_password.setText(sp.getString("password", null)); cb_save1.setChecked(true); }else { et_log_id.setText(sp.getString("username", username)); et_log_password.setText(sp.getString("password", password)); cb_save1.setChecked(true); } } @Override public void onClick(View view) { username=et_log_id.getText().toString(); password=et_log_password.getText().toString(); if (view == findViewById(R.id.btn_login)){ Student student = new Student(); CRUD crud = new CRUD(this); //获取输入框的学生信息 student.id = et_log_id.getText().toString(); student.password = et_log_password.getText().toString(); //通过id获取数据库学生信息 Student studentData =crud.getStudentById(student.id); //登录 if (student.id.equals(studentData.id)){ if (student.password.equals(studentData.password)){ boolean CheckBoxLogin = cb_save1.isChecked(); SharedPreferences.Editor editor = sp.edit(); if (CheckBoxLogin) { editor.putString("username", username); editor.putString("password", password); editor.putBoolean("auto", true); }else { editor.putString("username", null); editor.putString("password", null); editor.putBoolean("auto", false); } editor.commit(); student.name= studentData.name; Intent intent =new Intent(this,MenuActivity.class); intent.putExtra("st_id",student.id); intent.putExtra("st_name",student.name); startActivity(intent); }else { Toast.makeText(this, "密码不正确", Toast.LENGTH_SHORT).show(); } }else { Toast.makeText(this, "学号不正确", Toast.LENGTH_SHORT).show(); } } else if (view == findViewById(R.id.btn_reg)) { //跳转到注册页面 Intent intent = new Intent(this,RegActivity.class); intent.putExtra("keys",0); startActivity(intent); } } public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.menu,menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.teacher_view: Toast.makeText(this, "转换到教师登录页面!", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(this,TeacherActivity.class); startActivity(intent); break; case R.id.student_view: Toast.makeText(this, "已经是学生登录页面!", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); } }
package com.example.clockappliction; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.adapter.ListViewAdapter; import java.util.ArrayList; import java.util.List; public class MenuActivity extends AppCompatActivity implements View.OnClickListener{ private TextView tv_my_name; private String cid=null; private Button btn_mu_dk,btn_mu_remind; private RecyclerView mList; private List<Clock> mData; @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); btn_mu_dk = (Button) findViewById(R.id.btn_mu_dk); btn_mu_dk.setOnClickListener(this); btn_mu_remind = (Button) findViewById(R.id.btn_mu_remind); btn_mu_remind.setOnClickListener(this); tv_my_name = (TextView) findViewById(R.id.tv_my_name); Intent intent = getIntent(); String st_id =intent.getStringExtra("st_id"); String st_name =intent.getStringExtra("st_name"); cid = st_id; tv_my_name.setText("欢迎使用打卡APP:"+ st_name +"!"); // mList = (RecyclerView) this.findViewById(R.id.menu_recycler_view); initData(); // } @Override protected void onRestart() { super.onRestart(); setContentView(R.layout.activity_menu); btn_mu_dk = (Button) findViewById(R.id.btn_mu_dk); btn_mu_dk.setOnClickListener(this); btn_mu_remind = (Button) findViewById(R.id.btn_mu_remind); btn_mu_remind.setOnClickListener(this); tv_my_name = (TextView) findViewById(R.id.tv_my_name); Intent intent = getIntent(); String st_id =intent.getStringExtra("st_id"); String st_name =intent.getStringExtra("st_name"); cid = st_id; tv_my_name.setText("欢迎使用打卡APP!"); // mList = (RecyclerView) this.findViewById(R.id.menu_recycler_view); initData(); // } //view加入数据 private void initData() { mData = new ArrayList<>(); CRUD crud = new CRUD(this); //导入数据 for (int i = 1; i <= crud.getCountClock(); i++) { Clock data = new Clock(); Clock Data=crud.getClockByKeyWord(i); data.date= Data.date; data.word= "关键字:"+Data.word; data.summary= "总结:"+Data.summary; data.keep= "坚持天数:"+Data.keep; mData.add(data); } //设置布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); mList.setLayoutManager(linearLayoutManager); //创建适配器 ListViewAdapter adapter = new ListViewAdapter(mData); //设置到rview里 mList.setAdapter(adapter); } @Override public void onClick(View view) { if (view==findViewById(R.id.btn_mu_dk)){ Intent intent = new Intent(this,ClockActivity.class); intent.putExtra("cid",cid); startActivity(intent); } else if (view==findViewById(R.id.btn_mu_remind)) { Intent intent = new Intent(this,SetTimeActivity.class); startActivity(intent); } } public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.menu2,menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.back_view: Intent intent = new Intent(this,MainActivity.class); startActivity(intent); break; } return super.onOptionsItemSelected(item); } }
package com.example.clockappliction; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Student; public class RegActivity extends AppCompatActivity implements View.OnClickListener{ private Button btn_reg_add; private EditText et_reg_id,et_reg_name,et_reg_grade,et_reg_phone,et_reg_password; private int keys = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); btn_reg_add = (Button) findViewById(R.id.btn_reg_add); btn_reg_add.setOnClickListener(this); et_reg_id = (EditText) findViewById(R.id.et_reg_id); et_reg_name = (EditText) findViewById(R.id.et_reg_name); et_reg_grade = (EditText) findViewById(R.id.et_reg_grade); et_reg_phone = (EditText) findViewById(R.id.et_reg_phone); et_reg_password = (EditText) findViewById(R.id.et_reg_password); Intent intent = getIntent(); keys = intent.getIntExtra("keys",0); CRUD crud = new CRUD(this); Student student = new Student(); student = crud.getStudentByKeyWord(keys); //从数据库中得到本来的数据 et_reg_id.setText(student.id); et_reg_name.setText(student.name); et_reg_grade.setText(student.grade); et_reg_phone.setText(student.phone); et_reg_password.setText(student.password); } @Override public void onClick(View view) { if (view == findViewById(R.id.btn_reg_add)){ CRUD crud = new CRUD(this); Student student = new Student(); //接收输入框的数据 student.keyword = keys; student.id = et_reg_id.getText().toString(); student.name = et_reg_name.getText().toString(); student.grade = et_reg_grade.getText().toString(); student.phone = et_reg_phone.getText().toString(); student.password = et_reg_password.getText().toString(); keys = crud.insertStudent(student); Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show(); } } public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.menu2,menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.back_view: Intent intent = new Intent(this,MainActivity.class); startActivity(intent); break; } return super.onOptionsItemSelected(item); } }
package com.example.clockappliction; import static android.icu.text.DateTimePatternGenerator.DAY; import static androidx.constraintlayout.helper.widget.MotionEffect.TAG; import android.annotation.SuppressLint; import android.app.AlarmManager; import android.app.AlertDialog; import android.app.PendingIntent; import android.app.TimePickerDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.icu.util.TimeZone; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; public class SetTimeActivity extends AppCompatActivity implements View.OnClickListener , TimePickerDialog.OnTimeSetListener { private int hour,minute; private TextView tv_time; private Button btn_send; private EditText et_remind; public String mess = null; private SetTimeActivity.AlarmReceiver alarmReceiver; @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_time_picker); tv_time = findViewById(R.id.tv_time); findViewById(R.id.btn_time).setOnClickListener(this); btn_send = (Button) findViewById(R.id.btn_send); btn_send.setOnClickListener(this); et_remind = (EditText) findViewById(R.id.et_remind); } @Override public void onStart() { super.onStart(); alarmReceiver = new SetTimeActivity.AlarmReceiver(); // 创建一个闹钟的广播接收器 // 创建一个意图过滤器,只处理指定事件来源的广播 IntentFilter filter = new IntentFilter("ALARM"); registerReceiver(alarmReceiver, filter); // 注册接收器,注册之后才能正常接收广播 } @Override public void onStop() { super.onStop(); unregisterReceiver(alarmReceiver); // 注销接收器,注销之后就不再接收广播 } @Override public void onClick(View view) { if (view.getId()==R.id.btn_time){ Calendar calendar = Calendar.getInstance(); TimePickerDialog dialog = new TimePickerDialog(this,this, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true); dialog.show(); } else if (view.getId()==R.id.btn_send) { Intent intent = new Intent("ALARM"); mess = et_remind.getText().toString(); PendingIntent sender = PendingIntent.getBroadcast(this,0, intent,PendingIntent.FLAG_MUTABLE); long firstTime = SystemClock.elapsedRealtime(); // 开机之后到现在的运行时间(包括睡眠时间) long systemTime = System.currentTimeMillis(); android.icu.util.Calendar calendar = android.icu.util.Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); // 这里时区需要设置一下,不然会有8个小时的时间差 calendar.setTimeZone(TimeZone.getTimeZone("GMT+8")); calendar.set(android.icu.util.Calendar.MINUTE,getMinute()); calendar.set(android.icu.util.Calendar.HOUR_OF_DAY,getHours()); calendar.set(android.icu.util.Calendar.SECOND,0); calendar.set(android.icu.util.Calendar.MILLISECOND,0); // 选择的定时时间 long selectTime = calendar.getTimeInMillis(); // 如果当前时间大于设置的时间,那么就从第二天的设定时间开始 if(systemTime > selectTime) { Toast.makeText(this," ", Toast.LENGTH_SHORT).show();//设置的时间小于当前时间 calendar.add(android.icu.util.Calendar.DAY_OF_MONTH,0); selectTime = calendar.getTimeInMillis(); } // 计算现在时间到设定时间的时间差 long time = selectTime - systemTime; firstTime += time; // 进行闹铃注册 AlarmManager manager = (AlarmManager)getSystemService(ALARM_SERVICE); manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, DAY, sender); Log.i(TAG,"time ==== " + time +", selectTime ===== " + selectTime + ", systemTime ==== " + systemTime +", firstTime === " + firstTime); Toast.makeText(this,"设置提醒闹铃成功! ", Toast.LENGTH_LONG).show(); } } @Override public void onTimeSet(TimePicker timePicker, int hours_of_day, int minute) { String desc = String.format("你选择的时间是%d时%d分",hours_of_day,minute); tv_time.setText(desc); setHours(hours_of_day); setMinute(minute); } public int getHours(){ return hour; } public int getMinute(){ return minute; } public void setHours(int hour){ this.hour=hour; } public void setMinute(int minute){ this.minute=minute; } public void tipDialog(Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("事件闹钟:"); builder.setMessage("提醒您:"+mess); builder.setIcon(R.mipmap.ic_launcher); builder.setCancelable(false); //点击对话框以外的区域是否让对话框消失 //设置正面按钮 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog dialog = builder.create(); //创建AlertDialog对象 dialog.show(); //显示对话框 } public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { tipDialog(context); } } }
package com.example.clockappliction; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; import com.example.clockappliction.Information.Student; public class TeacherActivity extends AppCompatActivity implements View.OnClickListener { private Button mBtn_log; private EditText eText_id,eText_password; private CheckBox cb_save2; private String username,password; SharedPreferences sp1 = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_teacher); sp1 = this.getSharedPreferences("teacherinfo", Context.MODE_PRIVATE); mBtn_log = findViewById(R.id.btn_teacher_login); mBtn_log.setOnClickListener(this); eText_id = findViewById(R.id.et_teacher_id); eText_password = findViewById(R.id.et_teacher_password); cb_save2 = (CheckBox) findViewById(R.id.cb_save2); if (sp1.getBoolean("CheckBoxLogin", false)) { eText_id.setText(sp1.getString("username", null)); eText_password.setText(sp1.getString("password", null)); cb_save2.setChecked(true); }else { eText_id.setText(sp1.getString("username", username)); eText_password.setText(sp1.getString("password", password)); cb_save2.setChecked(true); } } @Override public void onClick(View view) { username=eText_id.getText().toString(); password=eText_password.getText().toString(); if (view == findViewById(R.id.btn_teacher_login)){ //获取输入框的学生信息 Student student = new Student(); student.id = eText_id.getText().toString(); student.password = eText_password.getText().toString(); if (student.id.equals("teacher")){ if (student.password.equals("123")){ boolean CheckBoxLogin = cb_save2.isChecked(); SharedPreferences.Editor editor = sp1.edit(); if (CheckBoxLogin) { editor.putString("username", username); editor.putString("password", password); editor.putBoolean("auto", true); }else { editor.putString("username", null); editor.putString("password", null); editor.putBoolean("auto", false); } editor.commit(); Intent intent = new Intent(this,InfoActivity.class); startActivity(intent); }else { Toast.makeText(this, "密码错误", Toast.LENGTH_SHORT).show(); } }else { Toast.makeText(this, "账号错误", Toast.LENGTH_SHORT).show(); } } } public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.menu,menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.teacher_view: Toast.makeText(this, "已经是教师登录页面!", Toast.LENGTH_SHORT).show(); break; case R.id.student_view: Toast.makeText(this, "转换到学生登录页面!", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(this,MainActivity.class); startActivity(intent); break; } return super.onOptionsItemSelected(item); } }
package com.example.clockappliction; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class InfoActivity extends AppCompatActivity implements View.OnClickListener { Button mBtn_search1,mBtn_search2,mBtn_search3; EditText mEt_search; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_info); mBtn_search1 = findViewById(R.id.btn_teacher_search1); mBtn_search2 = findViewById(R.id.btn_teacher_search2); mBtn_search3 = findViewById(R.id.btn_teacher_search3); mBtn_search1.setOnClickListener(this); mBtn_search2.setOnClickListener(this); mBtn_search3.setOnClickListener(this); mEt_search = (EditText) findViewById(R.id.et_teacher_search); } @Override public void onClick(View view) { String search_text = mEt_search.getText().toString(); Intent intent = null; switch (view.getId()){ case R.id.btn_teacher_search1: intent = new Intent(this, A1Activity.class); intent.putExtra("s1_text",search_text); startActivity(intent); break; case R.id.btn_teacher_search2: intent = new Intent(this, A2Activity.class); intent.putExtra("s2_text",search_text); startActivity(intent); break; case R.id.btn_teacher_search3: intent = new Intent(this, A3Activity.class); startActivity(intent); break; } } }
package com.example.clockappliction; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Clock; import java.util.Calendar; public class ClockActivity extends AppCompatActivity implements View.OnClickListener{ private EditText et_dk_word,et_dk_summary; private Button btn_dk_add; private TextView tv_dk_keep,tv_dk_maxday,tv_dk_date; private static int jud ; static int KeepCou=1; static int MaxCou=1; //检查判断值为0--》允许打卡 //检查判断值为1--》判断日期是否变更--》变更---判断设为0 -----允许打卡 // 》未变更---判断设为1----不允许打卡 @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_clock_in); tv_dk_keep = (TextView) findViewById(R.id.tv_dk_keep); tv_dk_maxday = (TextView) findViewById(R.id.tv_dk_maxday); tv_dk_date = (TextView) findViewById(R.id.tv_dk_date); tv_dk_keep.setText("坚持天数:"+ KeepCou); tv_dk_maxday.setText("历史最长天数:" +MaxCou); tv_dk_date.setText("日期:" +getStringDate()); et_dk_word = (EditText) findViewById(R.id.et_dk_word); et_dk_summary = (EditText) findViewById(R.id.et_dk_summary); btn_dk_add = (Button) findViewById(R.id.btn_dk_add); btn_dk_add.setOnClickListener(this); } @Override public void onClick(View view) { if (view==findViewById(R.id.btn_dk_add)){ CRUD crud = new CRUD(this); //获取输入框信息 Intent intent = getIntent(); String cid = intent.getStringExtra("cid"); Clock clock1 = crud.getClockByDate(getStringDate()); if (clock1!=null){ jud=1; } else if (clock1==null) { jud=0; } if (jud==0){ Clock clock =new Clock(); clock.cid = cid; clock.keep = String.valueOf(KeepCou); clock.maxday = String.valueOf(MaxCou); clock.date = getStringDate(); clock.word = et_dk_word.getText().toString(); clock.summary = et_dk_summary.getText().toString(); crud.insertClock(clock); Toast.makeText(this, "打卡成功!", Toast.LENGTH_SHORT).show(); KeepCou++; MaxCou++; }else { Toast.makeText(this, "你今天已经打过卡了", Toast.LENGTH_SHORT).show(); } } } public String getStringDate(){ java.util.Calendar calendar = java.util.Calendar.getInstance();//取得当前时间的年月日 时分秒 String year = String.valueOf(calendar.get(java.util.Calendar.YEAR)); String month = String.valueOf(calendar.get(java.util.Calendar.MONTH)+1); String day = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)); String date = year + "." + month + "." + day; return date; } public int getDate(){ java.util.Calendar calendar = java.util.Calendar.getInstance();//取得当前时间的年月日 时分秒 int day = calendar.get(Calendar.DAY_OF_MONTH); int month = (calendar.get(Calendar.MONTH)+1)*100; int year = calendar.get(Calendar.YEAR)*10000; int ymd = day+month+year; //20230308 return ymd; } }
package com.example.clockappliction; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.adapter.ListViewAdapter; import com.example.clockappliction.DataBase.DBHelper; import java.util.ArrayList; import java.util.List; public class A1Activity extends AppCompatActivity implements View.OnClickListener { private RecyclerView mList; private List<Clock> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_a1); mList = (RecyclerView) this.findViewById(R.id.a1_RecycleView); initData(); } private void initData() { mData = new ArrayList<>(); CRUD crud = new CRUD(this); Intent intent = getIntent(); String t_word = intent.getStringExtra("s1_text"); ArrayList<Clock> list1 = crud.getClockByWord(t_word); //导入数据 for (int i = 0; i < list1.size() ; i++) { Clock data = new Clock(); Clock Data=list1.get(i); data.date= Data.date; data.word= "关键字:"+Data.word; data.summary= "总结:"+Data.summary; data.keep= "坚持天数:"+Data.keep; mData.add(data); } //设置布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); mList.setLayoutManager(linearLayoutManager); //创建适配器 ListViewAdapter adapter = new ListViewAdapter(mData); //设置到rview里 mList.setAdapter(adapter); } @Override public void onClick(View view) { } }
package com.example.clockappliction; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.os.Bundle; import android.view.View; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.adapter.ListViewAdapter; import java.util.ArrayList; import java.util.List; public class A2Activity extends AppCompatActivity implements View.OnClickListener{ private RecyclerView mList; private List<Clock> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_a2); mList = (RecyclerView) this.findViewById(R.id.a2_RecycleView); initData(); } private void initData() { mData = new ArrayList<>(); CRUD crud = new CRUD(this); //导入数据 Intent intent = getIntent(); String sum = intent.getStringExtra("s2_text"); ArrayList<Clock> list1 = crud.getClockBySum(sum); //导入数据 for (int i = 0; i < list1.size() ; i++) { Clock data = new Clock(); Clock Data=list1.get(i); data.date= Data.date; data.word= "关键字:"+Data.word; data.summary= "总结:"+Data.summary; data.keep= "坚持天数:"+Data.keep; mData.add(data); } //设置布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); mList.setLayoutManager(linearLayoutManager); //创建适配器 ListViewAdapter adapter = new ListViewAdapter(mData); //设置到rview里 mList.setAdapter(adapter); } @Override public void onClick(View view) { } }
package com.example.clockappliction; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.adapter.ListViewAdapter; import com.example.clockappliction.adapter.ListViewAdapter2; import java.util.ArrayList; import java.util.List; public class A3Activity extends AppCompatActivity implements View.OnClickListener{ private RecyclerView mList; private List<Clock> mData; private TextView mNum; int cou = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_a3); mList = (RecyclerView) this.findViewById(R.id.a3_RecycleView); mNum = this.findViewById(R.id.tv_a3_num); initData(); mNum.setText("发表总次数: "+cou); } private void initData() { mData = new ArrayList<>(); CRUD crud = new CRUD(this); //导入数据 for (int i = 1; i <= crud.getCountClock(); i++) { Clock data = new Clock(); Clock Data=crud.getClockByKeyWord(i); data.date= Data.date; data.word= "关键字:"+Data.word; data.summary= "总结:"+Data.summary; data.keep= "坚持天数:"+Data.keep; mData.add(data); cou++; } //设置布局管理器 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); mList.setLayoutManager(linearLayoutManager); //创建适配器 ListViewAdapter2 adapter = new ListViewAdapter2(mData); //设置到rview里 mList.setAdapter(adapter); } @Override public void onClick(View view) { } public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.menu2,menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()){ case R.id.back_view: Intent intent = new Intent(this,InfoActivity.class); startActivity(intent); break; } return super.onOptionsItemSelected(item); } }
package com.example.clockappliction.Information; public class Clock { public int keyword; public String cid; public String date; public String word; public String summary; public String maxday; public String keep; public static final String TABLE = "Clock_Info"; public static final String KEYWORD = "keyword"; public static final String CID = "cid"; public static final String DATE = "date"; public static final String WORD = "word"; public static final String SUMMARY = "summary"; public static final String MAXDAY = "maxday"; public static final String KEEP = "keep"; }
package com.example.clockappliction.Information; public class Student { public int keyword; public String id; public String name; public String grade; public String phone; public String password; public static final String TABLE = "Student_Info"; public static final String KEYWORD = "keyword"; public static final String ID = "id"; public static final String NAME = "name"; public static final String GRADE = "grade"; public static final String PHONE = "phone"; public static final String PASSWORD = "password"; }
package com.example.clockappliction.DataBase; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.Information.Student; public class DBHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION=2; private static final String DATABASE_NAME="crud.db"; public DBHelper(Context context) { super(context,DATABASE_NAME,null,DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE_USER="CREATE TABLE IF NOT EXISTS " + Student.TABLE +"(" +Student.KEYWORD+" INTEGER PRIMARY KEY AUTOINCREMENT ," +Student.ID+" TEXT ," +Student.NAME+" TEXT ," +Student.GRADE+" TEXT ," +Student.PASSWORD+" TEXT ," +Student.PHONE+" TEXT)"; db.execSQL(CREATE_TABLE_USER); String CREATE_TABLE_CLOCK="CREATE TABLE IF NOT EXISTS " + Clock.TABLE +"(" +Clock.KEYWORD+" INTEGER PRIMARY KEY AUTOINCREMENT ," +Clock.CID+" TEXT ," //CID==ID +Clock.DATE+" TEXT ," +Clock.WORD+" TEXT ," +Clock.SUMMARY+" TEXT ," +Clock.KEEP+" TEXT ," +Clock.MAXDAY+" TEXT)"; db.execSQL(CREATE_TABLE_CLOCK); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS "+ Student.TABLE); db.execSQL("DROP TABLE IF EXISTS "+ Clock.TABLE); onCreate(db); } }
package com.example.clockappliction.DataBase; import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.widget.Toast; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.Information.Student; import java.util.ArrayList; public class CRUD { private DBHelper dbHelper; public CRUD (Context context){dbHelper = new DBHelper(context);} public int insertStudent(Student student){ SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(Student.ID,student.id); values.put(Student.NAME,student.name); values.put(Student.GRADE,student.grade); values.put(Student.PHONE,student.phone); values.put(Student.PASSWORD,student.password); long keywords = db.insert(Student.TABLE,null,values); db.close(); return (int) keywords; } public void insertClock(Clock clock){ SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(Clock.DATE,clock.date); values.put(Clock.WORD,clock.word); values.put(Clock.SUMMARY,clock.summary); values.put(Clock.KEEP,clock.keep); values.put(Clock.MAXDAY,clock.maxday); values.put(Clock.CID,clock.cid); db.insert(Clock.TABLE,null,values); db.close(); } @SuppressLint("Range") public Clock getClockByKeyWord(int key){ SQLiteDatabase db = dbHelper.getReadableDatabase(); String selectQuery = "SELECT * FROM " + Clock.TABLE + " WHERE " + Clock.KEYWORD +"=?"; Clock clock = new Clock(); Cursor cursor = db.rawQuery(selectQuery,new String[]{String.valueOf(key)}); if (cursor.moveToFirst()){ clock.date = cursor.getString(cursor.getColumnIndex(Clock.DATE)); clock.word = cursor.getString(cursor.getColumnIndex(Clock.WORD)); clock.summary = cursor.getString(cursor.getColumnIndex(Clock.SUMMARY)); clock.maxday = cursor.getString(cursor.getColumnIndex(Clock.MAXDAY)); clock.keep = cursor.getString(cursor.getColumnIndex(Clock.KEEP)); cursor.close(); db.close(); return clock; } cursor.close(); db.close(); return null; } @SuppressLint("Range") public Clock getClockByDate(String the_date){ SQLiteDatabase db = dbHelper.getReadableDatabase(); String selectQuery = "SELECT * FROM " + Clock.TABLE + " WHERE " + Clock.DATE +"=?"; Clock clock = new Clock(); Cursor cursor = db.rawQuery(selectQuery,new String[]{the_date}); if (cursor.moveToFirst()){ clock.date = cursor.getString(cursor.getColumnIndex(Clock.DATE)); clock.word = cursor.getString(cursor.getColumnIndex(Clock.WORD)); clock.summary = cursor.getString(cursor.getColumnIndex(Clock.SUMMARY)); clock.maxday = cursor.getString(cursor.getColumnIndex(Clock.MAXDAY)); clock.keep = cursor.getString(cursor.getColumnIndex(Clock.KEEP)); cursor.close(); db.close(); return clock; } cursor.close(); db.close(); return null; } @SuppressLint("Range") public int getCountClock(){ //查询记录数量 SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.rawQuery("SELECT COUNT (*) FROM "+Clock.TABLE,null); cursor.moveToFirst(); int result = cursor.getInt(0); cursor.close(); db.close(); return result; } @SuppressLint("Range") public Student getStudentById(String id){ SQLiteDatabase db = dbHelper.getReadableDatabase(); String selectQuery = "SELECT "+ Student.KEYWORD +","+ Student.ID +","+ Student.NAME +","+ Student.GRADE + ","+ Student.PASSWORD + ","+ Student.PHONE+ " FROM " + Student.TABLE +" WHERE " + Student.ID + "=?"; int count = 0; Student student = new Student(); Cursor cursor = db.rawQuery(selectQuery,new String[]{String.valueOf(id)}); if (cursor.moveToFirst()){ student.keyword = cursor.getInt(cursor.getColumnIndex(Student.KEYWORD)); student.id = cursor.getString(cursor.getColumnIndex(Student.ID)); student.name = cursor.getString(cursor.getColumnIndex(Student.NAME)); student.grade = cursor.getString(cursor.getColumnIndex(Student.GRADE)); student.phone = cursor.getString(cursor.getColumnIndex(Student.PHONE)); student.password = cursor.getString(cursor.getColumnIndex(Student.PASSWORD)); } cursor.close(); db.close(); return student; } @SuppressLint("Range") public Student getStudentByKeyWord(int keyword){ SQLiteDatabase db = dbHelper.getReadableDatabase(); String selectQuery = "SELECT "+ Student.KEYWORD +","+ Student.ID +","+ Student.NAME +","+ Student.GRADE + ","+ Student.PASSWORD + ","+ Student.PHONE+ " FROM " + Student.TABLE +" WHERE " + Student.KEYWORD + "=?"; int count = 0; Student student = new Student(); Cursor cursor = db.rawQuery(selectQuery,new String[]{String.valueOf(keyword)}); if (cursor.moveToFirst()){ student.keyword = cursor.getInt(cursor.getColumnIndex(Student.KEYWORD)); student.id = cursor.getString(cursor.getColumnIndex(Student.ID)); student.name = cursor.getString(cursor.getColumnIndex(Student.NAME)); student.grade = cursor.getString(cursor.getColumnIndex(Student.GRADE)); student.phone = cursor.getString(cursor.getColumnIndex(Student.PHONE)); student.password = cursor.getString(cursor.getColumnIndex(Student.PASSWORD)); } cursor.close(); db.close(); return student; } @SuppressLint("Range") public ArrayList<Clock> getClockByWord(String word){ SQLiteDatabase db = dbHelper.getReadableDatabase(); ArrayList<Clock> list1 = new ArrayList<>(); String selectQuery = "SELECT * FROM " + Clock.TABLE + " WHERE " + Clock.WORD + " LIKE "+"?" ; Cursor cursor = db.rawQuery(selectQuery,new String[]{String.valueOf("%"+word+"%")}); if (cursor.moveToFirst()){ do { Clock clock = new Clock(); clock.date = cursor.getString(cursor.getColumnIndex(Clock.DATE)); clock.word = cursor.getString(cursor.getColumnIndex(Clock.WORD)); clock.summary = cursor.getString(cursor.getColumnIndex(Clock.SUMMARY)); clock.maxday = cursor.getString(cursor.getColumnIndex(Clock.MAXDAY)); clock.keep = cursor.getString(cursor.getColumnIndex(Clock.KEEP)); list1.add(clock); }while (cursor.moveToNext()); } cursor.close(); db.close(); return list1; } @SuppressLint("Range") public ArrayList<Clock> getClockBySum(String sum){ SQLiteDatabase db = dbHelper.getReadableDatabase(); ArrayList<Clock> list1 = new ArrayList<>(); String selectQuery = "SELECT * FROM " + Clock.TABLE + " WHERE " + Clock.SUMMARY + " LIKE "+"?" ; Cursor cursor = db.rawQuery(selectQuery,new String[]{String.valueOf("%"+sum+"%")}); if (cursor.moveToFirst()){ do { Clock clock = new Clock(); clock.date = cursor.getString(cursor.getColumnIndex(Clock.DATE)); clock.word = cursor.getString(cursor.getColumnIndex(Clock.WORD)); clock.summary = cursor.getString(cursor.getColumnIndex(Clock.SUMMARY)); clock.maxday = cursor.getString(cursor.getColumnIndex(Clock.MAXDAY)); clock.keep = cursor.getString(cursor.getColumnIndex(Clock.KEEP)); list1.add(clock); }while (cursor.moveToNext()); } cursor.close(); db.close(); return list1; } }
package com.example.clockappliction.adapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.clockappliction.DataBase.CRUD; import com.example.clockappliction.Information.Clock; import com.example.clockappliction.Information.Student; import com.example.clockappliction.R; import java.util.List; public class ListViewAdapter extends RecyclerView.Adapter<ListViewAdapter.InnerHolder> { private final List<Clock> mData; public ListViewAdapter(List<Clock> data){this.mData = data;} //创建View @NonNull @Override public InnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view =View.inflate(parent.getContext(),R.layout.item_list_view,null); return new InnerHolder(view); } @Override public void onBindViewHolder(@NonNull InnerHolder holder, int position) { holder.setData(mData.get(position)); } @Override public int getItemCount() { if (mData != null) { return mData.size(); } return 0; } public class InnerHolder extends RecyclerView.ViewHolder{ private ImageView mIv_168; private TextView mDate,mWord,mSum,mKeep; public InnerHolder(@NonNull View itemView) { super(itemView); //找到控件 mIv_168 = itemView.findViewById(R.id.iv_168); mDate = itemView.findViewById(R.id.list_tv_date); mWord = itemView.findViewById(R.id.list_tv_word); mSum = itemView.findViewById(R.id.list_tv_summary); mKeep = itemView.findViewById(R.id.list_tv_keep); } public void setData(Clock clock) { mDate.setText(clock.date); mWord.setText(clock.word); mSum.setText(clock.summary); mKeep.setText(clock.keep); } } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@mipmap/pic_5" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_title0" android:text="欢迎使用" android:textSize="50sp" android:layout_marginTop="80dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:textStyle="bold" android:textColor="@color/blue_1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_title" android:text="每日打卡APP" android:textSize="50sp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:layout_below="@+id/tv_title0" android:textStyle="bold" android:textColor="@color/blue_1" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/et_log_id" android:hint=" 学号" android:background="@drawable/bg_edit" android:layout_below="@+id/tv_title" android:layout_marginTop="50dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:inputType="textPassword" android:id="@+id/et_log_password" android:hint=" 密码" android:background="@drawable/bg_edit" android:layout_below="@+id/et_log_id" android:layout_marginTop="20dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_login" android:text="登录" android:textSize="28dp" android:layout_below="@+id/et_log_password" android:layout_marginTop="70dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></Button> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_reg" android:text="注册" android:textSize="28dp" android:layout_below="@+id/btn_login" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></Button> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cb_save1" android:text="记住账号密码" android:textColor="@color/white_text" android:textSize="18sp" android:layout_below="@+id/et_log_password" android:layout_marginLeft="40dp" android:layout_marginTop="15dp" /> </RelativeLayout>
<?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="match_parent" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:background="@mipmap/pic_5" tools:context=".MenuActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/menu_recycler_view" android:layout_width="match_parent" android:layout_height="500dp" android:layout_below="@+id/tv_my_name"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_mu_dk" android:text="每日打卡" android:textSize="27dp" android:layout_below="@+id/menu_recycler_view" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></Button> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_mu_remind" android:text="设置提醒" android:textSize="27dp" android:layout_below="@+id/btn_mu_dk" android:layout_marginTop="12dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:layout_marginBottom="15dp" ></Button> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_my_name" android:layout_marginTop="5dp" android:textSize="18dp" android:textColor="@color/white_text" android:text="欢迎使用打卡APP:某某某" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" ></TextView> </RelativeLayout>
<?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="match_parent" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:background="@mipmap/pic_5" tools:context=".RegActivity"> <TextView android:id="@+id/tv_title2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_marginStart="98dp" android:layout_marginTop="70dp" android:layout_marginBottom="50dp" android:text="注册账号" android:textColor="@color/blue_1" android:textSize="50sp" android:textStyle="bold" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/et_reg_id" android:hint=" 学号" android:background="@drawable/bg_edit" android:layout_below="@+id/tv_title2" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/et_reg_name" android:hint=" 姓名" android:background="@drawable/bg_edit" android:layout_below="@+id/et_reg_id" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/et_reg_grade" android:hint=" 班级" android:background="@drawable/bg_edit" android:layout_below="@+id/et_reg_name" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/et_reg_phone" android:hint=" 电话号码" android:background="@drawable/bg_edit" android:layout_below="@+id/et_reg_grade" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:inputType="textPassword" android:id="@+id/et_reg_password" android:hint=" 密码" android:background="@drawable/bg_edit" android:layout_below="@+id/et_reg_phone" android:layout_marginTop="15dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_reg_add" android:text="注册" android:textSize="29dp" android:layout_below="@+id/et_reg_password" android:layout_marginTop="30dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></Button> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@mipmap/pic_1" tools:context=".TeacherActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_title0" android:text="欢迎使用" android:textSize="50sp" android:layout_marginTop="80dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:textStyle="bold" android:textColor="@color/white_text" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_title" android:text="每日打卡APP" android:textSize="50sp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:layout_below="@+id/tv_title0" android:textStyle="bold" android:textColor="@color/white_text" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/et_teacher_id" android:hint=" 教师工号" android:background="@drawable/bg_edit" android:layout_below="@+id/tv_title" android:layout_marginTop="50dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:inputType="textPassword" android:id="@+id/et_teacher_password" android:hint=" 教师密码" android:background="@drawable/bg_edit" android:layout_below="@+id/et_teacher_id" android:layout_marginTop="20dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></EditText> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_teacher_login" android:text="教师登录" android:textSize="28dp" android:layout_below="@+id/et_teacher_password" android:layout_marginTop="70dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" ></Button> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cb_save2" android:layout_below="@+id/et_teacher_password" android:layout_marginLeft="40dp" android:text="记住账号密码" android:textColor="@color/white" android:textSize="20sp" android:layout_marginTop="15dp" /> </RelativeLayout>
<?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="match_parent" android:orientation="vertical" android:background="@mipmap/pic_bg1" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30dp" android:id="@+id/tv_time" ></TextView> <EditText android:layout_width="match_parent" android:layout_height="60dp" android:textSize="20dp" android:id="@+id/et_remind" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:background="@drawable/bg_edit" android:layout_above="@+id/btn_time" android:hint="输入提醒事件" ></EditText> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_time" android:text="设置时间" android:textSize="28dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:layout_marginTop="20dp" android:layout_above="@+id/btn_send" ></Button> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn_send" android:text="点击设置提醒" android:textSize="28dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:layout_alignParentBottom="true" android:layout_marginBottom="50dp" ></Button> </RelativeLayout>
<?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="match_parent" android:orientation="vertical" > <ImageView android:layout_width="90dp" android:layout_height="90dp" android:src="@mipmap/pic_ok" android:id="@+id/iv_168" android:layout_marginLeft="10dp" android:layout_marginTop="8dp" android:padding="3dp" android:background="@drawable/bg_edit2"/> <TextView android:id="@+id/list_tv_date" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_toRightOf="@+id/iv_168" android:text="日期" android:textSize="20dp" android:textColor="@color/black" android:layout_marginTop="8dp" android:background="@drawable/bg_edit2" /> <TextView android:id="@+id/list_tv_word" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/iv_168" android:layout_marginRight="10dp" android:layout_below="@+id/list_tv_date" android:text="关键字" android:textSize="20dp" android:textColor="@color/black" android:background="@drawable/bg_edit2" /> <TextView android:id="@+id/list_tv_summary" android:layout_width="match_parent" android:layout_height="100dp" android:layout_below="@+id/list_tv_keep" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:textSize="20dp" android:text="总结" android:textColor="@color/black" android:background="@drawable/bg_edit2" /> <TextView android:id="@+id/list_tv_keep" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_toRightOf="@+id/iv_168" android:textSize="20dp" android:layout_below="@+id/list_tv_word" android:text="坚持天数" android:textColor="@color/black" android:background="@drawable/bg_edit2" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".A1Activity" android:background="@mipmap/pic_bg1"> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/a1_RecycleView" android:layout_marginBottom="20dp"/> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".A3Activity" android:background="@mipmap/pic_5"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv_a3_num" android:text="发表总次数" android:textSize="20dp" android:textColor="@color/white_text" android:layout_marginTop="10dp" /> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/a3_RecycleView" android:layout_marginBottom="10dp" android:layout_marginTop="50dp"/> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context=".A2Activity" android:background="@mipmap/pic_bg1"> <androidx.recyclerview.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/a2_RecycleView" android:layout_marginBottom="20dp"/> </RelativeLayout>
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17228499.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律