'Refactoring File
I have a problem of refactoring file into a package when I got 'One type argument expected for class Result' after a refactor HomeActivity, HomeView, and HomeAdapter into a package called presentation. Here is the problem: [1]: https://i.stack.imgur.com/HI6vr.png Error 'One type argument expected for class Result'
And here is the code:
HomeActivity:
package id.kotlin.belajar.presentation
import android.util.Log
import android.view.View
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView
import id.kotlin.belajar.R
import id.kotlin.belajar.presentation.HomeView
import id.kotlin.belajar.presentation.HomeAdapter
import id.kotlin.belajar.data.HomeDataSource
import id.kotlin.belajar.data.HomeResponse
class HomeActivity : AppCompatActivity(), HomeView {
private lateinit var progressBar: ProgressBar
private lateinit var recyclerView: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
progressBar = findViewById(R.id.pb_home)
recyclerView = findViewById(R.id.rv_home)
val presenter = HomePresenter(this)
presenter.discoverMovie()
}
override fun onShowLoading() {
progressBar.visibility = View.VISIBLE
}
override fun onHideLoading() {
progressBar.visibility = View.GONE
recyclerView.visibility = View.VISIBLE
}
override fun onResponse(results: List<Result>) {
recyclerView.addItemDecoration(DividerItemDecoration(this@HomeActivity,
DividerItemDecoration.VERTICAL))
recyclerView.adapter = HomeAdapter(results)
}
override fun onFailure(t:Throwable) {
Log.e(HomeActivity::class.java.simpleName, "${t.printStackTrace()}")
}
}
HomeAdapter:
package id.kotlin.belajar.presentation
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import id.kotlin.belajar.R
import id.kotlin.belajar.presentation.HomeView
import id.kotlin.belajar.data.HomeDataSource
import id.kotlin.belajar.data.HomeResponse
class HomeAdapter (private val results: List<Result>): RecyclerView.Adapter<HomeAdapter.HomeViewHolder>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeViewHolder {
return HomeViewHolder(
LayoutInflater
.from(parent.context).inflate(
R.layout.item_home,
parent,
false
)
)
}
override fun onBindViewHolder(holder: HomeViewHolder, position: Int){
holder.bind(results[holder.adapterPosition])
}
override fun getItemCount(): Int{
return results.count()
}
inner class HomeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
fun bind(result: Result){
with(itemView) {
val name = findViewById<TextView>(R.id.original_title)
name.text = result.title
val country = findViewById<TextView>(R.id.overview)
country.text = result.overview
}
}
}
}
HomeView:
package id.kotlin.belajar.presentation
interface HomeView {
fun onShowLoading()
fun onHideLoading()
fun onResponse(results: List<Result>)
fun onFailure(t: Throwable)
}
I have added some import code path to get access on those program files, but there is no effect to it. I need help, as I'm still beginner of mobile programming
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
