我想从一个活动中获取一个变量,并在另一个类中使用它。 用户将在名为editTextSerie
的editText中填充此变量。 override fun searchSeries(listener: OnDataListener) {
val retrofit = Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())
.baseUrl("http://api.themoviedb.org/3/")
.build()
val client = retrofit.create(MovieDBApiInterface::class.java)
val objetoClasse1 = SearchActivity()
var nomeS = objetoClasse1.editTextSerie.text.toString().trim()
val responseCall = client.searchSeries("API_KEY", "pt-BR", nomeS)
responseCall.enqueue(object : Callback<AllSeriesResponse> {
override fun onResponse(call: Call<AllSeriesResponse>?, response1: Response<AllSeriesResponse>?) {
listener.onSuccess(response1!!.body()!!.results)
}
override fun onFailure(call: Call<AllSeriesResponse>?, t: Throwable?) {
listener.onFailure(t!!.message.toString())
}
})
}
此函数“ searchSeries”来自类“ Series”。
我想从另一个名为“搜索活动”的类中获取“ editTextSerie”, 所以我创建了变量“ nomeS”来接收它的值。
class SearchActivity : AppCompatActivity() {
var botaoSearch: AppCompatImageButton? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_search)
botaoSearch = findViewById(R.id.btn_search)
botaoSearch?.setOnClickListener {
var nomeSerie = editTextSerie.text.toString().trim()
}
}
}
我想接收此值(editTextSerie的值来自SearchActivity的XML),并在responseCall上将其与“ nomeS”变量一起使用
答案 0 :(得分:1)
什么是OnDataListener
?不确定是接口还是抽象类,所以我会写一些伪代码。
首先将函数searchSeries
的参数更改为
searchSeries(text: String, listener: OnDataListener)
因此,在类Series
中,您可以在函数searchSeries
中获取数据:
override fun searchSeries(text: String, listener: OnDataListener) {
// ...
// you can get the "text" string
}
然后编辑您的SearActivity
的监听器:
class SearchActivity : AppCompatActivity() {
var botaoSearch: AppCompatImageButton? = null
// create class "Series"
val series = Series()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_search)
botaoSearch = findViewById(R.id.btn_search)
botaoSearch?.setOnClickListener {
var nomeSeries = editTextSerie.text.toString().trim()
searchSeries(nomeSeries)
}
}
private fun searchSeries(text: String) {
series.searchSeries(text, object : OnDataListener {
override onSuccess(a0: ...) {
}
override onFailure(message: String) {
}
})
}
}
如果OnDataListener
是抽象类:
series.searchSeries(text, object : OnDataListener() {
override onSuccess(a0: ...) {
}
override onFailure(message: String) {
}
})