Как я могу отправить строку из фрагмента в класс для изменения Json API в kotlin? - PullRequest
1 голос
/ 11 апреля 2020

когда я нажимаю кнопку, я хочу изменить ссылку в сервисе, но это не работает

как я могу отправить строку из фрагмента в класс для изменения Json API?

Это мой интерфейс

    interface NewsAPI {
    @GET
    fun getNews(@Url url:String):Single<API>
}

Это мой сервис

class NewsAPIService {

    private val BASE_URL = "xxxxxxxxxx"
    private val api = Retrofit.Builder().baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .build()
        .create(NewsAPI::class.java)



    fun getData():Single<API>{
        return api.getNews(CountrySelectFragment().countrCode1)
    }
}

А это мой фрагмент

class CountrySelectFragment : Fragment() {
 var countrCode1 = ""

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

}

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_country_select, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    buttontr.setOnClickListener {
        countrCode1 = "trLink"
    }

    buttonar.setOnClickListener {
        countrCode1 = "arLink"

    }

    buttonuk.setOnClickListener {
        countrCode1 = "ukLink"
                }

    buttonus.setOnClickListener {
        countrCode1 = "usaLink"
    }
    buttonfr.setOnClickListener {
       countrCode1 = "frLink"
    }


}

}

Что мне для этого сделать?

1 Ответ

1 голос
/ 12 апреля 2020

пробовали ли вы функцию OnClick для всех кнопок? если нет, попробуйте это:

 override fun OnClick(view: View){

     when (view.id){ 
       R.id.buttontr-> return "trlink"
       R.id.button-> return "arlink"
       // the rest is the same
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...