【问题标题】:How to Json data parse to tablayout in kotlin?如何在 kotlin 中将 Json 数据解析为 tablayout?
【发布时间】:2020-04-29 10:51:30
【问题描述】:

我有一个 json 数据。我想将其解析为选项卡。 当我使用邮递员并发送请求时。 结果响应此图像。

我已经设置了接口 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>
}

主活动

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
    }

}

【问题讨论】:

    标签: json android-studio kotlin retrofit


    【解决方案1】:

    试试这个

    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")
                }
    
            })
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      相关资源
      最近更新 更多