问题描述 投票:0回答:0

fileName =

DummyDataSource.kt

(这只是普通的kotlin类)

fun getBestSelling(): Observable<ArrayList<ProductEntity>> {

        val dummy1 = ProductEntity(name = "Bell Pepper Red", description = "1kg, Priceg",
            price = 20000,
            picture = R.drawable.iv_pepper_red,
            id = 5
        )
        val dummy2 = ProductEntity(name = "Beef bone", description = "1kg, Priceg",
            price = 25000,
            picture = R.drawable.iv_beef_bone,
            id = 6
        )
        val dummy3 = ProductEntity(name = "Boiler Chicken", description = "1kg, Priceg",
            price = 15000,
            picture = R.drawable.iv_boiler_chicken,
            id = 7
        )
        val dummy4 = ProductEntity(name = "Ginger", description = "250gm, Priceg",
            price = 22000,
            picture = R.drawable.iv_ginger,
            id = 4
        )

        val data = listOf(dummy1, dummy2, dummy3, dummy4)
        return Observable.just(ArrayList(data))
}

在这里我要做的是填充数组

fun getBestSelling(): Observable<ArrayList<ProductEntity>> {
var url:String="http:// 192.168.56.1/toko-online/mobile/pro_kategori.php"
        var rq : RequestQueue = Volley.newRequestQueue(this)
        var data = ArrayList<ProductEntity>()
        var js = JsonArrayRequest(Request.Method.GET,url,null, Response.Listener{ response ->
            for (x in 0..response.length()-1){
                data.add(ProductEntity(response.getJSONObject(x).getInt("id"),
                    response.getJSONObject(x).getInt("id"),response.getJSONObject(x).getString("name"),
                    response.getJSONObject(x).getString("url"),response.getJSONObject(x).getString("description"),
                    response.getJSONObject(x).getInt("price"),response.getJSONObject(x).getInt("stock"),
                    response.getJSONObject(x).getInt("category_id")))
            }
        }, Response.ErrorListener { error ->
            Toast.makeText(this,error.message,Toast.LENGTH_LONG).show()
        })
        rq.add(js)
        return Observable.just(data)
}

错误来自行
var rq : RequestQueue = Volley.newRequestQueue(this)

错误是:

type不匹配:推断类型是dummydatasource,但上下文!是预期的

我复制了此代码

fun getdata(): Observable<ArrayList<ProductEntity>> { var url:String="http:// 192.168.56.1/toko-online/mobile/pro_kategori.php" var rq : RequestQueue = Volley.newRequestQueue(this) var data = ArrayList<ProductEntity>() var js = JsonArrayRequest(Request.Method.GET,url,null, Response.Listener{ response -> for (x in 0..response.length()-1){ data.add(ProductEntity(response.getJSONObject(x).getInt("id"), response.getJSONObject(x).getInt("id"),response.getJSONObject(x).getString("name"), response.getJSONObject(x).getString("url"),response.getJSONObject(x).getString("description"), response.getJSONObject(x).getInt("price"),response.getJSONObject(x).getInt("stock"), response.getJSONObject(x).getInt("category_id"))) } }, Response.ErrorListener { error -> Toast.makeText(this,error.message,Toast.LENGTH_LONG).show() }) rq.add(js) return Observable.just(data) }

主要活动中的Into
oncreate

。但是因此,我无法填充

getBestSelling()
中的数组,因为该函数

DummyDataSource.kt

仅返回数据到
getdata()

有任何方法可以使数据转到
oncreate
将您的函数从otCreate中恢复并用上下文参考替换为“ this”(requrecontext()或在oncreate中创建上下文var以参考)
    

java android arrays kotlin android-volley
© www.soinside.com 2019 - 2025. All rights reserved.