#android #api #android-studio #kotlin #okhttp
#Android #API #android-studio #kotlin #okhttp
Вопрос:
Я следую этому руководству о kotlin programming language parsing API:https://www.youtube.com/watch?v=2W41M9fWf6Iamp;list=PL0dzCUj1L5JGfHj1lwxOq67zAJV3e1S9Samp;index=5,
и для перехода по ссылке «о руководстве» ниже я использую androidx api версии 30
но я застрял в 14:54, о
"client.newCall(request).enqueue(object : Callback){
}"
Я получил ошибку в строке (45), в CourseDetailActivity
ошибка:
Too many arguments for public abstract fun enqueue(responseCallback: Callback): Unit defined in okhttp3.Call
это мой CourseDetailActivity :
class CourseDetailActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// recyclerView_main.setBackgroundColor(Color.RED)
recyclerView_main.layoutManager = LinearLayoutManager(this)
recyclerView_main.adapter = CourseDetailAdapter()
val navbarTitle = intent.getStringExtra(CustumViewHolder.VIDEO_TITLE_KEY)
supportActionBar?.title = navbarTitle
// println(courseDetailUrl)
fetcJson()
}
private fun fetcJson() {
val videoID = intent.getIntExtra(CustumViewHolder.VIDEO_ID_KEY, -1)
val courseDetailUrl = "https://api.letsbuildthatapp.com/youtube/course_detail?id=" videoID
val client = OkHttpClient()
val request = Request.Builder().url(courseDetailUrl).build()
client.newCall(request).enqueue(object : Callback){
}
}
private class CourseDetailAdapter : RecyclerView.Adapter<CourseLessonViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CourseLessonViewHolder {
val layoutInflater = LayoutInflater.from(parent?.context)
val custumView = layoutInflater.inflate(R.layout.course_lesson_row, parent, false)
// val blueView = View(parent?.context)
// blueView.setBackgroundColor(Color.RED)
// blueView.minimumHeight = 50
return CourseLessonViewHolder(custumView)
}
override fun getItemCount(): Int {
return 5
}
override fun onBindViewHolder(holder: CourseLessonViewHolder, position: Int) {
}
}
}
private class CourseLessonViewHolder(val custumView: View) : RecyclerView.ViewHolder
(custumView) {
}
это мой класс mainAdapter.kt :
class MainAdapter(val homeFeed: HomeFeed) : RecyclerView.Adapter<CustumViewHolder>() {
val videoTitles = listOf("First Title", "Second", "3rd")
override fun getItemCount(): Int {
return homeFeed.videos.count()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustumViewHolder {
val layoutInflater = LayoutInflater.from(parent?.context)
val cellForRow = layoutInflater.inflate(R.layout.video_row, parent, false)
return CustumViewHolder(cellForRow)
}
override fun onBindViewHolder(holder: CustumViewHolder, position: Int) {
val video = homeFeed.videos.get(position)
holder?.view?.textView_video_title?.text = video.name
holder?.view?.textview_channel_name?.text =
video.channel.name " " "20k Viewsn" "2 days ago"
val thumbnailImageView = holder?.view?.imageView_video_thumbnail
Picasso.get().load(video.imageUrl).into(thumbnailImageView)
val channelProfileImageView = holder?.view?.imageView_channel_profile
Picasso.get().load(video.imageUrl).into(channelProfileImageView)
holder?.video = video
}
}
class CustumViewHolder(val view: View, var video: Video? = null) : RecyclerView.ViewHolder(view) {
companion object {
val VIDEO_TITLE_KEY = "VIDEO_TITLE"
val VIDEO_ID_KEY = "VIDEO_ID"
}
init {
view.setOnClickListener {
val intent = Intent(view.context, CourseDetailActivity::class.java)
intent.putExtra(VIDEO_TITLE_KEY, video?.name)
intent.putExtra(VIDEO_ID_KEY, video?.id)
view.context.startActivity(intent)
}
}
}
Ответ №1:
У вас ошибка в анонимном классе, который реализует интерфейс «Обратного вызова».
Вместо этого это
client.newCall(request).enqueue(object : Callback){
}
Используйте это
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {}
override fun onResponse(call: Call, response: Response) {}
})
Комментарии:
1. Вау, спасибо, чувак, это сработало для меня. Я допустил ошибку, поместив фигурные скобки за скобки. лол, глупый я