Как Json разобрать данные в tablayout в kotlin? - PullRequest
0 голосов
/ 12 января 2020

У меня есть json данные. Я хочу разобрать это на вкладках. когда я использую почтальон и отправляю запрос. Результат откликаюсь на это изображение. enter image description here

Я уже установил интерфейс API и попытался отозвать ответ, используя модификацию. но я потерпел неудачу. Проверьте мой код и Как я могу исправить ViewPagerAdapter и MainActivity? Кто-нибудь может помочь?

Интерфейс API

interface API{
    @Headers("Content=Type:application/json","Authorization:token:String")


    @GET("/store/category/info")
    fun getcategory(@Header("Authorization") token: String?):Call<Category>
}

MainActivity

class MainActivity : AppCompatActivity() {

  lateinit var  tabLayout:TabLayout
  lateinit  var viewPager: ViewPager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        val token = SharedPreference.getTokenInfo(applicationContext)

        Client.retrofitService.getcategory(token).enqueue(object:Callback<Category>{

            override fun onResponse(call: Call<Category>, response: Response<Category>) {
                Log.d("test","Category complete")
                viewPager = findViewById(R.id.viewpager) as ViewPager
                setupViewPager(viewPager)
                tabLayout = findViewById(R.id.category_tab_layout) as TabLayout
                tabLayout.setupWithViewPager(viewPager)
            }

            override fun onFailure(call: Call<Category>, t: Throwable) {
                Log.d("test","Category fail")
            }

        })
    }
    private fun setupViewPager(viewPager: ViewPager) {
        var adapter: ViewPagerAdapter = ViewPagerAdapter(supportFragmentManager)

        viewPager.adapter = adapter

    }
}

ViewPagerAdapter

class ViewPagerAdapter: FragmentPagerAdapter {

    private val mFragmentList: MutableList<Fragment> = mutableListOf()
    private val mFragmentTitleList: MutableList<Child> = mutableListOf()

    constructor(manager: FragmentManager) : super(manager)


    override fun getItem(position: Int): Fragment {

        return mFragmentList.get(position)
    }

    override fun getCount(): Int {

        return mFragmentList.size

    }

    override fun getPageTitle(position: Int): CharSequence? {

        return mFragmentTitleList.get(position).title
    }

}

1 Ответ

0 голосов
/ 12 января 2020

Попробуйте с этим

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        val token = SharedPreference.getTokenInfo(applicationContext)
                viewPager = findViewById(R.id.viewpager) as ViewPager
                tabLayout = findViewById(R.id.category_tab_layout) as TabLayout

        Client.retrofitService.getcategory(token).enqueue(object:Callback<Category>{

            override fun onResponse(call: Call<Category>, response: Response<Category>) {
                Log.d("test","Category complete")
                setupViewPager(viewPager)
                tabLayout.setupWithViewPager(viewPager)
            }

            override fun onFailure(call: Call<Category>, t: Throwable) {
                Log.d("test","Category fail")
            }

        })
    }
...