我正在为我的应用程序创建登录页面,它给了我Cannot infer a type of this parameter. Please specify it explicitly
错误。
仅在错误和响应内给出错误。任何线索为什么会这样?
我尝试搜索此问题,但找不到。
var rq: RequestQueue = Volley.newRequestQueue(this)
var sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
if(response.equals("0"))
Toast.makeText(this, "Login failed.", Toast.LENGTH_LONG).show()
else
var i = Intent(this,LoggedinActivity::class.java)
startActivity(i)
Toast.makeText(this, "User created successfully.", Toast.LENGTH_LONG).show()
}, Response.ErrorListener {
error ->
Toast.makeText(this, error.message, Toast.LENGTH_LONG).show()
})
rq.add(sr)
有什么线索可以解决这个问题吗?
答案 0 :(得分:0)
可能是因为您在if and else上没有括号。
尝试一下:
val rq: RequestQueue = Volley.newRequestQueue(this)
val sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
if(response == "0") {
Toast.makeText(this, "Login failed.", Toast.LENGTH_LONG).show()
}
else {
val i = Intent(this, MainActivity::class.java)
startActivity(i)
Toast.makeText(this, "User created successfully.", Toast.LENGTH_LONG).show()
}
}, Response.ErrorListener {
error ->
Toast.makeText(this, error.message, Toast.LENGTH_LONG).show()
})
rq.add(sr)
答案 1 :(得分:0)
this
应该指的是活动上下文,否则代码会认为它是Response.Listener
的附加内容,如user8159708所述,您至少需要在else
上加上方括号声明。
val rq: RequestQueue = Volley.newRequestQueue(this)
val sr = StringRequest(Request.Method.GET, url, Response.Listener { response ->
if(response == "0") {
Toast.makeText(this@MainActivity, "Login failed.", Toast.LENGTH_LONG).show()
}
else {
val i = Intent(this@MainActivity, MainActivity::class.java)
startActivity(i)
Toast.makeText(this@MainActivity, "User created successfully.", Toast.LENGTH_LONG).show()
}
}, Response.ErrorListener {
error ->
Toast.makeText(this@MainActivity, error.message, Toast.LENGTH_LONG).show()
})
rq.add(sr)
编辑:
根据此post
,kotlin中的正确语法为this@MainActivity
答案 2 :(得分:0)
我已经解决了问题。问题不是this
或else
语句。这是因为Android Studio添加了错误的库。如果发生相同问题,请确保已添加这些库。
import com.android.volley.Request
import com.android.volley.RequestQueue
import com.android.volley.Response
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley