我有一个JSON并使用retrofit制作了RecyclerView。现在我要在recyclerview中的每个项目都有一个详细的活动。所以我用新的呼叫请求为此创建了另一个活动。
这是JSON:
[
{
"id": 1,
"name": "A",
"imageurl": "http://192.168.43.200/myproject/a.jpg"
},
{
"id": 2,
"name": "B",
"imageurl": "http://192.168.43.200/myproject/b.jpg"
},
...
]
和用于获取所有JSON对象的API接口:
@GET("/myproject/json")
Call<List<Alphabet>> getAlphabets();
@GET("/myproject/json/{id}")
Call<Alphabet> getAlphabet(@Path("id") int id);
detail.java:
Bundle bundle = getIntent().getExtras();
id = bundle.getInt("id");
ApiInterface request = RetrofiBiulder.getClient().create(ApiInterface.class);
Call<Alphabet> call = request.getAlphabet(id);
call.enqueue(new Callback<Alphabet>() {
@Override
public void onResponse(Call<Alphabet> call, Response<Alphabet> response) {
Alphabet alphabet = response.body();
if(response.isSuccessful()){
txtId.setText(String.valueOf(alphabet.getProductid()));
txtNmae.setText(alphabet.getProductname());
Glide.with(Detail.this).load(alphabet.getImageurl()).into(imgDetail);}
}
@Override
public void onFailure(Call<Alphabet> call, Throwable t) {
}
});
为什么它不起作用?
答案 0 :(得分:0)
如果您的API支持此功能,您可以向改造界面方法添加查询参数:
@GET("/myproject/json")
Call<Alphabet> getAlphabet(@Query("id") String id);
或者,如果您的API期望id
作为路径参数:
@GET("/myproject/json/{id}")
Call<Alphabet> getAlphabet(@Path("id") String id);