diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b3b815d..5944d6c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ (IntroductionDiffCallback()) { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IntroductionViewHolder { - val view = LayoutInflater.from(parent.context) - .inflate(R.layout.item_introduction_gdsc_android, parent, false) - return IntroductionViewHolder(view) - } - - override fun onBindViewHolder(holder: IntroductionViewHolder, position: Int) { - holder.bind(getItem(position)) //position에 해당하는 data type을 전달 - } - - class IntroductionViewHolder(private val view: View) : RecyclerView.ViewHolder(view) { - private val memberImage = view.findViewById(R.id.iv_member) - private val memberName = view.findViewById(R.id.tv_member_name) - fun bind(member: MemberDto) { - memberImage.load(member.image) - memberName.text = member.name - } - } -} - -class IntroductionDiffCallback : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: MemberDto, newItem: MemberDto): Boolean { - return oldItem.name == newItem.name - } - - override fun areContentsTheSame(oldItem: MemberDto, newItem: MemberDto): Boolean { - return oldItem == newItem - } -} \ No newline at end of file +//package com.example.gdsc +// +//import android.view.LayoutInflater +//import android.view.View +//import android.view.ViewGroup +//import android.widget.ImageView +//import android.widget.TextView +//import androidx.recyclerview.widget.DiffUtil +//import androidx.recyclerview.widget.ListAdapter +//import androidx.recyclerview.widget.RecyclerView +//import coil.api.load +// +//class IntroductionAdapter : +// ListAdapter(IntroductionDiffCallback()) { +// override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IntroductionViewHolder { +// val view = LayoutInflater.from(parent.context) +// .inflate(R.layout.item_introduction_gdsc_android, parent, false) +// return IntroductionViewHolder(view) +// } +// +// override fun onBindViewHolder(holder: IntroductionViewHolder, position: Int) { +// holder.bind(getItem(position)) //position에 해당하는 data type을 전달 +// } +// +// class IntroductionViewHolder(private val view: View) : RecyclerView.ViewHolder(view) { +// private val memberImage = view.findViewById(R.id.iv_member) +// private val memberName = view.findViewById(R.id.tv_member_name) +// fun bind(member: MemberDto) { +// memberImage.load(member.image) +// memberName.text = member.name +// } +// } +//} +// +//class IntroductionDiffCallback : DiffUtil.ItemCallback() { +// override fun areItemsTheSame(oldItem: MemberDto, newItem: MemberDto): Boolean { +// return oldItem.name == newItem.name +// } +// +// override fun areContentsTheSame(oldItem: MemberDto, newItem: MemberDto): Boolean { +// return oldItem == newItem +// } +//} \ No newline at end of file diff --git a/app/src/main/java/com/example/gdsc/ApiFactory.kt b/app/src/main/java/com/example/gdsc/ApiFactory.kt index cd9efed..65b4406 100644 --- a/app/src/main/java/com/example/gdsc/ApiFactory.kt +++ b/app/src/main/java/com/example/gdsc/ApiFactory.kt @@ -7,7 +7,7 @@ import retrofit2.Retrofit object ApiFactory { private const val BASE_URL = - "https://gdsc-4f545-default-rtdb.asia-southeast1.firebasedatabase.app/" + "https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/" val retrofit: Retrofit by lazy { Retrofit.Builder() diff --git a/app/src/main/java/com/example/gdsc/MainActivity.kt b/app/src/main/java/com/example/gdsc/MainActivity.kt index f9be448..0f09fe7 100644 --- a/app/src/main/java/com/example/gdsc/MainActivity.kt +++ b/app/src/main/java/com/example/gdsc/MainActivity.kt @@ -20,22 +20,23 @@ class MainActivity : AppCompatActivity() { } private fun getMemberApi() { - val adapter = IntroductionAdapter() - binding.rvIntroductionGdscAndroid.adapter = adapter - getMemberService.getMember().enqueue(object : retrofit2.Callback> { +// val adapter = IntroductionAdapter() +// binding.rvIntroductionGdscAndroid.adapter = adapter + getMemberService.getMember().enqueue(object : retrofit2.Callback { override fun onResponse( - call: Call>, response: Response> + call: Call, response: Response ) { if (response.isSuccessful) { - response.body()?.let { adapter.submitList(it) } + response.body()?.let { Log.d("result", it.toString()) } } else { Log.d("error", "실패한 응답") } } - override fun onFailure(call: Call>, t: Throwable) { + override fun onFailure(call: Call, t: Throwable) { t.message?.let { Log.d("error", it) } ?: "서버통신 실패(응답값 X)" } + }) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/gdsc/Member.kt b/app/src/main/java/com/example/gdsc/Member.kt index 019d71c..03d3da9 100644 --- a/app/src/main/java/com/example/gdsc/Member.kt +++ b/app/src/main/java/com/example/gdsc/Member.kt @@ -4,10 +4,67 @@ import androidx.annotation.DrawableRes import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +//@Serializable +//data class MemberDto( +// @SerialName("img") +// val image: String, +// @SerialName("name") +// val name: String +//) @Serializable data class MemberDto( - @SerialName("img") - val image: String, - @SerialName("name") - val name: String + @SerialName("response") + val response: Response ) + +@Serializable +data class Response( + @SerialName("header") + val header: Header, + @SerialName("body") + val body: Body +) + +@Serializable +data class Header( + @SerialName("resultCode") + val resultCode: String, + @SerialName("resultMsg") + val resultMsg: String +) + +@Serializable +data class Body( + @SerialName("dataType") + val dataType: String, + @SerialName("items") + val items: Items, + @SerialName("pageNo") + val pageNo: Int, + @SerialName("numOfRows") + val numOfRows: Int, + @SerialName("totalCount") + val totalCount: Int +) + +@Serializable +data class Items( + @SerialName("item") + val item: List +) + +@Serializable +data class Item( + @SerialName("baseDate") + val baseDate: String, + @SerialName("baseTime") + val baseTime: String, + @SerialName("category") + val category: String, + @SerialName("nx") + val nx: Int, + @SerialName("ny") + val ny: Int, + @SerialName("obsrValue") + val obsrValue: String +) \ No newline at end of file diff --git a/app/src/main/java/com/example/gdsc/MemberApiService.kt b/app/src/main/java/com/example/gdsc/MemberApiService.kt index 069d421..78e79ac 100644 --- a/app/src/main/java/com/example/gdsc/MemberApiService.kt +++ b/app/src/main/java/com/example/gdsc/MemberApiService.kt @@ -2,8 +2,17 @@ package com.example.gdsc import retrofit2.Call import retrofit2.http.GET +import retrofit2.http.Query interface MemberApiService { - @GET("member.json") - fun getMember(): Call> + @GET("getUltraSrtNcst?serviceKey=IqVvPpU%2BF978g9EmI5OKfapy9GsFWMo%2F6kpq2NoOoeZvibCCxmdMpzBXKujzEON3%2F2i4%2FDa1trld4oEEb84y7w%3D%3D") + fun getMember( + @Query("numOfRows") numOfRows: Int = 1, + @Query("pageNo") pageNo: Int = 1, + @Query("dataType") dataType: String = "JSON", + @Query("base_date") base_date: String = "20231105", + @Query("base_time") base_time: String = "0600", + @Query("nx") nx: Int = 55, + @Query("ny") ny: Int = 127 + ): Call } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 65eee29..322eb47 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,14 +6,22 @@ android:layout_height="match_parent" android:layout_gravity="center"> - + + + + + + + + + + + app:layout_constraintStart_toStartOf="parent"/> \ No newline at end of file