Вы можете использовать callback
Прежде всего, определите обратный вызов в вашем адаптере следующим образом:
interface CallbackInterface {
fun passDataCallback(message: String)
}
Затем инициализируйте обратный вызов interface
в вашем adapter
:
class YourAdapter(private val callbackInterface:CallbackInterface) :
RecyclerView.Adapter<CurrencyListAdapter.ViewHolder>() {
.
.
.
}
Затем используйте метод обратного вызова из интерфейса внутри вашего onBindViewHolder()
следующим образом:
holder.itemView.setOnClickListener {
//Set your codes about intent here
callbackInterface.passResultCallback("Your message")
}
И, наконец, реализуйте ваш метод callback
в вашем activity
следующим образом:
class TracksActivity: AppCompatActivity(), TracksView , YourAdapterName.CallbackInterface {
private var albumsAdapter: AlbumsAdapter? = null
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.activity_tracks)
}
override fun passResultCallback(message: String) {
//message is "ff"
}
}
UPDATE:
Если вы не используете callback
, как вы написали, просто замените activity
на следующее:
class TracksActivity: AppCompatActivity(), TracksView {
private var albumsAdapter: AlbumsAdapter? = null
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.activity_tracks)
var bundle : Bundle? = intent.extras
var message = bundle!!.getString("dd")
Log.d("dd", "${message}")
}
}