个人作业第二阶段1

实现教师查看学生每日打卡记录功能:

package com.example.learningmanagement.adapter

import android.content.Intent
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.example.learningmanagement.R
import com.example.learningmanagement.entity.DailySummary

class DailySummaryAdapter : ListAdapter<DailySummary, DailySummaryAdapter.ViewHolder>(DiffCallback()) {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_daily_summary, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val dailySummary = getItem(position)
        holder.bind(dailySummary)
    }

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        private val tvUrl: TextView = itemView.findViewById(R.id.tvUrl)

        fun bind(dailySummary: DailySummary) {
            tvUrl.text = dailySummary.url
            
            // 设置点击事件,打开URL
            itemView.setOnClickListener {
                val intent = Intent(Intent.ACTION_VIEW, Uri.parse(dailySummary.url))
                itemView.context.startActivity(intent)
            }
        }
    }

    class DiffCallback : DiffUtil.ItemCallback<DailySummary>() {
        override fun areItemsTheSame(oldItem: DailySummary, newItem: DailySummary): Boolean {
            return oldItem.id == newItem.id
        }

        override fun areContentsTheSame(oldItem: DailySummary, newItem: DailySummary): Boolean {
            return oldItem == newItem
        }
    }
}
package com.example.learningmanagement.service

import com.example.learningmanagement.entity.ApiResponse
import com.example.learningmanagement.entity.DailySummary
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path

interface DailySummaryService {
    @GET("daily/selectAll/{userId}")
    suspend fun getDailySummaries(@Path("userId") userId: String): ApiResponse<List<DailySummary>>
    
    @POST("daily/add")
    suspend fun addDailySummary(@Body dailySummary: DailySummary): ApiResponse<DailySummary>
}

package com.example.learningmanagement.ui

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import com.example.learningmanagement.R

class TeacherMainActivity : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_teacher_main)

        findViewById<Button>(R.id.btnCheckDailyLogs).setOnClickListener {
            startActivity(Intent(this, StudentLogsActivity::class.java))
        }
    }
}

<?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:padding="16dp">

    <Button
        android:id="@+id/btnCheckDailyLogs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="查看学生打卡记录" />

    <Button
        android:id="@+id/btnOtherFunction"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="其他功能" />

</LinearLayout>
posted @ 2025-04-18 23:53  vivi_vimi  阅读(11)  评论(0)    收藏  举报