当前位置: 首页 > 知识库问答 >
问题:

与RecycerView一起使用Gson Api时出错?

邢雨华
2023-03-14
private val datalist: MutableList<Sura> = mutableListOf()
private lateinit var myAdapter: MyAdapter
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_quran_a_p_i)

    myAdapter = myAdapter(datalist) // here is the error


    apiQuranRecyclerView.layoutManager = LinearLayoutManager(this)
    apiQuranRecyclerView.addItemDecoration(DividerItemDecoration(this, OrientationHelper.VERTICAL))
    apiQuranRecyclerView.adapter = myAdapter

    AndroidNetworking.initialize(this)

    AndroidNetworking.get("http://api.islamhouse.com/v1/mykey/quran/get-category/462298/ar/json/")
        .build()
        .getAsObject(Surasnames::class.java, object : ParsedRequestListener<Surasnames>{
            override fun onResponse(response: Surasnames) {
                datalist.addAll(response.suras)
                myAdapter.notifyDataSetChanged()
            }

            override fun onError(anError: ANError?) {
            }

        })


}

我的适配器

class MyAdapter (private val datalist: MutableList<Sura>): RecyclerView.Adapter<myHolder>() {

private lateinit var context: Context
override fun onCreateViewHolder(parent: ViewGroup, p1: Int): myHolder {
    context = parent.context
    return myHolder(LayoutInflater.from(context).inflate(R.layout.api_quran_view, parent, false))
}


override fun getItemCount(): Int = datalist.size


override fun onBindViewHolder(holder: myHolder, position: Int) {
    val data = datalist[position]

    val apisuraname = holder.itemView.apiSuraNames

    val surasnames = "${data.id} ${data.title}"

    apisuraname.text = surasnames


    holder.itemView.setOnClickListener {
        Toast.makeText(context, surasnames, Toast.LENGTH_SHORT).show()
    }

}

我的持有者

类myHolder(itemView:View):recyclerview.viewholder(itemView){}

data class Sura(
@SerializedName("add_date")
val addDate: Int,
@SerializedName("api_url")
val apiUrl: String,
@SerializedName("id")
val id: Int,
@SerializedName("title")
val title: String,
@SerializedName("type")
val type: String

第二个

data class Surasnames(
@SerializedName("add_date")
val addDate: Int,
@SerializedName("description")
val description: String,
@SerializedName("id")
val id: Int,
@SerializedName("locales")
val locales: List<Any>,
@SerializedName("suras")
val suras: List<Sura>,
@SerializedName("title")
val title: String)

提前致谢

共有1个答案

宗苗宣
2023-03-14

您需要调用构造函数。换行

myAdapter=myAdapter(datalist

 类似资料:
  • 我最近开始使用JMockit,对TDD和mocking非常陌生。我喜欢使用代码覆盖率来确保我已经测试了给定类/方法的所有行。 我在尝试JMockit(Delegate()功能)和代码覆盖率时遇到了以下错误。我包括通过和不通过的考试。 我不确定我是否做错了什么? 我想知道是否有其他人遇到过此问题,是否有任何解决方案或修复可用? 我甚至不确定这是JMockit问题还是EclEmma问题。谢谢 我的设置

  • 在嵌入式TomEE容器中运行Arquillian测试时,我得到了以下错误

  • 问题内容: 我正在为接下来的2个月内的OCPJP 8考试做准备,目前我受到了我的关注,因为我不明白为什么 这显然要编译OK!但是当您运行它时,您会看到这样的异常 我在这里需要一些帮助,以了解为什么asList方法不能与removeIf一起使用?我假设它将返回一个实现removeIf方法的ArrayList实例! 任何答案将不胜感激。 干杯! 问题答案: 生成一个列表,从该列表中无法删除元素,因此引

  • 问题内容: 我正在尝试将checkstyles google_checks.xml与maven- checkstyle-plugin一起使用 。如果我将google_checks.xml与最新的checkstyle intelliJ插件一起使用,则一切正确,但是当我尝试通过maven-checkstyle插件对其进行配置时,出现此错误: 我的pom.xml看起来像这样: 你们对可能出什么问题有一些

  • 我有一个通过http承载图像的地理服务器。我的客户端站点使用https。我一直在使用openlayers,一切都很好。现在我正试图转移到cesiumjs,我在IE或Edge中没有得到任何图像(不幸的是,我无法测试其他浏览器)。如果使用bing地图,我可以在我的客户机中获取图像,因此客户机代码在其他情况下是可用的。在浏览器控制台中,我看到: SEC7117:网络请求超文本传输协议://[myserv

  • 我试图将Hibernate与我的spring应用程序上下文联系起来。我正在成功地连接SessionFactory,但当我尝试调用getCurrentSession时,我看到以下错误: 我正在配置数据源会话工厂和事务管理器。我还指定了事务处理将是注释驱动的 下面是我的上下文XML: null 下面是我发现错误的类: 当这被称为sessionFactory时不是null,而是带有上述错误的错误。如果我