小编San*_*ati的帖子

如何在Interceptor Android中获取401状态代码时更改活动

当我在API中获取401状态代码时,我必须打开登录活动.我不想在每个API的onError方法中放置更改活动逻辑.我想要一个用于所有API的全局方法.为此,我创建了一个拦截器

public class MyInterceptor extends BaseActivity implements Interceptor {

@Override
public Response intercept(Chain chain) throws IOException {
    Response response = chain.proceed(chain.request());

    if (response.code() == 401) {

        throw new RuntimeException(" Here you got 401 from API !");
    }

    return response;
}
}
Run Code Online (Sandbox Code Playgroud)

在这里我添加了这个拦截器

OkHttpClient.Builder builder=new OkHttpClient.Builder()
            .addNetworkInterceptor(new Interceptor() {
                @Override
                public okhttp3.Response intercept(Chain chain) throws IOException {
                    Request newRequest = chain.request().newBuilder()
                            .addHeader("Content-Type", "application/json")
                            .addHeader("User-Agent", "MyApp-Android-App")
                            .build();
                    return chain.proceed(newRequest);
                }
            })
            .addNetworkInterceptor(new StethoInterceptor())
            .addNetworkInterceptor(new MyInterceptor())
            .addNetworkInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY));
Run Code Online (Sandbox Code Playgroud)

现在,我应该在哪里添加更改活动调用方法.我还使用RxRetrofit调用API.我想要一个 …

android retrofit2 okhttp3

8
推荐指数
1
解决办法
832
查看次数

在 Recyclerview 中拖动项目时自动滚动滚动条

我在滚动视图中遇到自动滚动问题。

就我而言,有两个 Recyclerview。第一个 Recyclerview,水平滚动,第二个垂直滚动。第一个 RecyclerView 仅用于拖动,第二个 RecyclerView 仅用于放置。两个 recyclerview 都在 ScrollView 内部,因此我在第二个 Recyclerview 中禁用了垂直滚动。我在 Second Recyclerview 的项目上添加了 DragListener。每个项目都有拖动侦听器,因此我在放置项目时添加/替换项目。

所以我的主要问题是滚动,所以当我拖动项目时滚动无法正常工作。目前我使用下面的代码在拖动时滚动。

case DragEvent.ACTION_DRAG_LOCATION:
RecyclerView recyclerView = (RecyclerView) viewSource.getParent();
MyAdapter adapter = (MyAdapter) recyclerView.getAdapter();
int y = Math.round(dragEvent.getY());
Timber.d("onDrag(): " + y);
int translatedY = y - adapter.getScrollDistance();
Timber.d("onDrag(): translated : " + translatedY + "   getScrollDistance : " + adapter.getScrollDistance());
int threshold = 50;
// make a scrolling up due the y has passed the threshold
if (translatedY < threshold) {
    // …
Run Code Online (Sandbox Code Playgroud)

android scrollview android-recyclerview

5
推荐指数
1
解决办法
5105
查看次数