在 Retrofit 响应中单击 RecyclerView 后,我试图禁用按钮。
应用程序使用 RecyclerView 填充列表,我使用 Retrofit 与后端 REST API 通信。一个项目中有两个按钮,单击时激活 Retrofit 客户端。如果来自 API 的响应成功,则应禁用按钮。我遇到了两个问题:前几个项目工作得很好,但在我从未点击过的几个滚动按钮之后也被禁用了;其次是列表中后面的几个随机按钮仍然可以点击。
public void onBindViewHolder(final NewsViewHolder holder, int position) {
holder.btnPositive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// init Retrofit Client
JSONPlaceHolderAPI mAPIService;
mAPIService = ApiUtils.getAPIServiceFetch();
mAPIService.getNews(url).enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result>
response) {
holder.btnPositive.setVisibility(View.GONE);
}
}
@Override
public void onFailure(Call<Result> call, Throwable t) {
// do code
}
});
}
});
holder.btnNegative.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JSONPlaceHolderAPI mAPIService;
mAPIService = ApiUtils.getAPIServiceFetch();
mAPIService.getNews(url).enqueue(new Callback<Result>() {
@Override
public void onResponse(Call<Result> call, Response<Result>
response) {
holder.btnNegative.setEnabled(false);
}
}
@Override
public void onFailure(Call<Result> call, Throwable t) {
// do code
}
});
}
});
}
我想问题出在 Retrofit 的某个地方,它使用后台线程或 AsyncTask。
MMMHUHU
阿波罗的战车
相关分类