我有一个包含变量的类A。我需要在B类接口文件中传递变量,以便在Kotlin中获得Dynamic输出。如果它是一个常量字符串,那么我可以检索结果,但是我不确定如何动态更改该值。 我在测试中使用了以下代码,但这是静态JSON值。
Class:A
val intent= Intent(customView.context,ApiMovies::class.java)
intent.putExtra(MOVIES_TITLE_KEY,Movies?.name)
Class:B
interface ApiMovies {
// val name= intent.getStringExtra(MOVIES_TITLE_KEY,Movies?.name)
@GET("get_movie.php?name=DunKirk")
fun getMovies() : Observable<MovieResponse>
}
Class:C
val retrofit : Retrofit = Retrofit.Builder()
.baseUrl("https://www.imdb.com")
Class:D
class MovieResponse {
lateinit var data : List<Movie>
}
答案 0 :(得分:0)
我认为您可以为classB的方法添加一个参数
Class:B interface ApiMovies {
@GET("get_movie.php")
fun getMovies(@QueryMap() Map<String, String> info) : Observable<MovieResponse>
}
在调用您的方法之前,创建一个地图,将k&v添加到map(map.add(“ name”,xxx))中,像getMovies(map)一样调用它,这样就可以了,无需传递变量到classB。
答案 1 :(得分:0)
我如下更改了代码。
Class:A
val intent= Intent(customView.context,ApiMovies::class.java)
intent.putExtra(MOVIES_TITLE_KEY,Movies?.name)
apiMovies.getMovies($intent)
Class:B
interface ApiMovies {
@GET("get_movie.php")
fun getMovies(@Query("name") name:String) : Observable<MovieResponse>
}
Class:C
val retrofit : Retrofit = Retrofit.Builder()
.baseUrl("https://www.imdb.com")
Class:D
class MovieResponse {
lateinit var data : List<Movie>
}