小编Sub*_*sed的帖子

Android:如何使用Volley处理来自服务器的消息错误?

我正在使用Volley为我的Android应用程序从我的服务器获取数据.除了从我的服务器处理错误之外,它运行良好.我的服务器在出错时发送此响应:

{
    "status": 400,
    "message": "Errors (2): A name is required- Julien is already used. Not creating."
}
Run Code Online (Sandbox Code Playgroud)

我的目标是获取消息,然后将其显示在Toast.我按照一些示例来了解如何执行此操作,但它不起作用.

有我的错误监听器:

public void onErrorResponse(VolleyError error) {
            int  statusCode = error.networkResponse.statusCode;
            NetworkResponse response = error.networkResponse;

            Log.d("testerror",""+statusCode+" "+response.data);
            // Handle your error types accordingly.For Timeout & No connection error, you can show 'retry' button.
            // For AuthFailure, you can re login with user credentials.
            // For ClientError, 400 & 401, Errors happening on client side when sending api request. …
Run Code Online (Sandbox Code Playgroud)

android android-volley

71
推荐指数
2
解决办法
8万
查看次数

为何使用开始活动?

我一直在查看API文档,并注意到从API级别16开始,Context类包括以下方法:

public abstract void startActivities (Intent[] intents)

我一直在谷歌搜索,试图通过它在应用程序代码,问题或文章中使用的例子来表达我的好奇心,但我还没有遇到任何问题.如果有人问过类似的问题,请告诉我.

无论如何,我很好奇何时应该/可以在应用程序代码中使用,以及这样做会带来什么(如果有的话)的好处?我个人从来没有见过这种方法,我没有把握它的实用性.任何反馈将不胜感激.

android android-intent android-activity

15
推荐指数
1
解决办法
4689
查看次数

Lottie 动画库 Z 排序问题

我目前正在玩适用于 Android的 AirBnB 的 Lottie,但我在LottieAnimationViewZ 排序方面遇到了问题。无论我是否将 LottieAnimationView 放在 的顶部RelativeLayout,它总是出现在布局中的所有其他元素之上,例如:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="@dimen/spacing_lrg"
    tools:context="com.myapp.SplashActivity">

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/animation_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:lottie_fileName="test.json"/>

   <! -- Other Elements that should appear on top of the background animation -->

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我也尝试将LottieAnimationView的高程设置为 0,但没有成功解决问题。有没有人知道如何解决这个问题,或者这只是图书馆的限制?另外,如果是限制,是什么原因造成的?

编辑:

这可能已在库更新中修复,因为此问题发生在库的早期版本中(因为这是在 2 年前发布的)。我会验证是否是这种情况,如果是这样,我会接受一些东西来关闭这篇文章。我刚刚继续前进,但这个问题又重新引起了人们的注意。

android z-order android-animation lottie-android

11
推荐指数
1
解决办法
654
查看次数

补丁请求Android排球

我正在使用Android的Volley网络库进行我正在进行的项目.我已经从https://android.googlesource.com/platform/frameworks/volley/下载了抽头的主分支,所以我的库项目应该是最新的,但只支持以下请求方法:

/**
 * Supported request methods.
 */
public interface Method {
    int DEPRECATED_GET_OR_POST = -1;
    int GET = 0;
    int POST = 1;
    int PUT = 2;
    int DELETE = 3;
}
Run Code Online (Sandbox Code Playgroud)

扩展库以支持补丁请求可能不会太麻烦,所以我的问题是为什么基本库不支持补丁请求?此外,有人可以建议任何已添加此支持的好git分支吗?

android android-networking android-volley

9
推荐指数
1
解决办法
4357
查看次数

在Kotlin中使用@Parcelize Annotation的NoSuchMethodError

我目前正在尝试实验(这可能就是为什么它不起作用......)@Parcelize注释来生成Parcelable代码.大多数类型似乎工作正常,但我有问题Serializable抛出NoSuchMethodError:

   10-05 13:55:18.549 20808-20808/com.app E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.app, PID: 20808
   java.lang.NoSuchMethodError: No virtual method writeSerializable(Ljava/util/Date;)V in class Landroid/os/Parcel;
   or its super classes (declaration of 'android.os.Parcel' appears in /system/framework/framework.jar)
       at com.app.models.Job.writeToParcel(Job.kt)
       at android.os.Parcel.writeParcelable(Parcel.java:1496)
       at android.os.Parcel.writeValue(Parcel.java:1402)
       at android.os.Parcel.writeArrayMapInternal(Parcel.java:724)
       at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1408)
       at android.os.Bundle.writeToParcel(Bundle.java:1157)
       at android.os.Parcel.writeBundle(Parcel.java:764)
       at android.content.Intent.writeToParcel(Intent.java:8687)
       at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3082)
       at android.app.Instrumentation.execStartActivity(Instrumentation.java:1518)
       at android.app.Activity.startActivityForResult(Activity.java:4225)
       at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
       at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:65)
       at android.app.Activity.startActivityForResult(Activity.java:4183)
       at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:711)
       at android.app.Activity.startActivity(Activity.java:4522)
       at android.app.Activity.startActivity(Activity.java:4490)
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过将Date对象更改为字符串来解决这个问题,但不愿意.有没有其他人遇到这个问题,除了使用字符串之外,还可以提供一个可行的解决方法?

如果需要,这里是参考的实现:

@Parcelize
data class Job(val id: String, …
Run Code Online (Sandbox Code Playgroud)

android nosuchmethoderror parcelable kotlin kotlin-android-extensions

6
推荐指数
1
解决办法
534
查看次数

在ListView中未调用Subclassed RelativeLayout onDraw()方法

以下是我想要实现的目标的一些背景,以帮助使我的问题更清楚......我正在创建一个导航抽屉,其中ListView中的每个项目看起来类似于以下内容:

项目清单

但是,我需要能够以编程方式将右侧边框(蓝色)的颜色更改为各种不同的颜色,因此在使用解决方案时,我决定扩展RelativeLayout并在onDraw(Canvas c);方法中绘制线条.我的RelativeLayout代码如下:

public class CustomRelativeLayout extends RelativeLayout {

    private final Paint paint = new Paint();

    public CustomRelativeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

        //Other Constructors

    private void init() {
        setPaintColor(Color.argb(128, 0, 0, 0));
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(3);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawLine(getMeasuredWidth() - 1, 0, getMeasuredWidth() - 1, getMeasuredHeight(), paint);
    }

    public void setPaintColor(int color){
        paint.setColor(color);
        invalidate();
    }
}
Run Code Online (Sandbox Code Playgroud)

NavigationDrawerListView还包含一个使用这个类的标题,并能正常工作的头视图.但是,对于每个单独的ListView项目,边框不存在.我调试了我的解决方案,发现我的子类RelativeLayoutonDraw(Canvas …

android android-layout android-listview

2
推荐指数
1
解决办法
2575
查看次数

将recyclerview项目限制为仅10,而不使用过滤器进行分页

我正在使用带有普通TextView的283项的Recycler View来过滤列表.

我想一直只显示10条记录.

我不能使用getCount(或GetItemCount)因为当我过滤列表它给我IndexOutOfBoundsExceptions时,有没有其他方法可以做到这一点?

public class RealmAutoCompleteAdapter extends RecyclerView.Adapter<RealmAutoCompleteAdapter.ProductViewHolder>  {
Realm realm;

RealmChangeListener<RealmResults<FieldsItem>> realmChangeListener;
RealmResults<FieldsItem> items;
String searchTerm;

public RealmAutoCompleteAdapter(Realm realm, RealmResults<FieldsItem> items) {
    this.realm = realm;
    this.realmChangeListener = new RealmChangeListener<RealmResults<FieldsItem>>() {
        @Override
        public void onChange(RealmResults<FieldsItem> results) {
            notifyDataSetChanged();
        }
    };
    this.items = items;
    items.addChangeListener(realmChangeListener);
}

@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new ProductViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.autocomplete_row, parent, false));
}

@Override
public void onBindViewHolder(ProductViewHolder holder, int position) {
    FieldsItem item = items.get(position);
    holder.title.setText(item.getTitle());
}

public void updateInput(String input) {
    this.searchTerm …
Run Code Online (Sandbox Code Playgroud)

android realm android-recyclerview

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