Nullpointerexception на ActionProcessButton - PullRequest
       1

Nullpointerexception на ActionProcessButton

0 голосов
/ 18 декабря 2018

При попытке запустить код я получаю нулевой указатель на моем ActionProcessButton и, похоже, не могу найти решение.

Это мой код:

public class ChangePasswordFragment extends Fragment {

    @BindView(R.id.old_password)
    EditText oldPasswordText;
    @BindView(R.id.new_password)
    EditText newPasswordText;
    @BindView(R.id.connfirm_password)
    EditText confirmPasswordText;
    @BindView(R.id.done_button)
    ActionProcessButton doneButton;
    @BindView(R.id.delete_button)
    ActionProcessButton deleteButton;
    @BindView(R.id.layout)
    LinearLayout layout;
    @BindView(R.id.animation_view)
    LottieAnimationView animationView;

    private String mToken;
    private Handler mHandler;
    private Activity mActivity;
    private SharedPreferences mSharedPreferences;
    private View mView;
    private static final String LOG_TAG = Login.class.getSimpleName();

    public ChangePasswordFragment() {
        //required public constructor
    }

    public static ChangePasswordFragment newInstance() {
        return new ChangePasswordFragment();
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mActivity = (Activity) context;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater,
                             @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        mView = inflater.inflate(R.layout.fragment_settings, container, false);
        ButterKnife.bind(this, mView);

        mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(mActivity);

        mToken = mSharedPreferences.getString(USER_TOKEN, null);
        mHandler = new Handler(Looper.getMainLooper());

        doneButton.setMode(ActionProcessButton.Mode.ENDLESS);
        doneButton.setOnClickListener(v -> {
            hideKeyboard();
            if (checkEmptyText())
                checkPasswordMatch();
        });

        deleteButton.setOnClickListener(v -> {
            deleteAccount();
        });


        return mView;
    }

А это мой XML-файл:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".displayClasses.ChangePassword.ChangePasswordFragment">

    <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        xmlns:app="http://schemas.android.com/apk/res-auto">

        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/animation_view"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:layout_gravity="center"
            app:lottie_autoPlay="true"
            app:lottie_fileName="loading.json"
            app:lottie_imageAssetsFolder="images"
            app:lottie_loop="true"
            android:visibility="gone"/>

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="16dp"

            android:id="@+id/layout">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginLeft="1dp"
                android:layout_marginRight="2dp"
                android:layout_marginTop="10dp">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dp"
                    android:paddingTop="2dp"
                    android:text="@string/change_password_heading"
                    android:textColor="@color/black"
                    android:textSize="16sp"
                    android:id="@+id/change_password_heading"/>
                <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textColorHint="@color/accent"
                    app:passwordToggleDrawable="@drawable/ic_remove_red_eye_black_24dp"
                    app:passwordToggleEnabled="true"
                    app:passwordToggleTint="@color/black"
                    android:layout_marginTop="12dp">
                    <EditText
                        android:id="@+id/old_password"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="12dp"
                        android:ems="10"
                        android:hint="@string/old_password"
                        android:inputType="textPassword"
                        android:textColorHint="@color/accent"/>
                </android.support.design.widget.TextInputLayout>

                <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textColorHint="@color/accent"
                    app:passwordToggleDrawable="@drawable/ic_remove_red_eye_black_24dp"
                    app:passwordToggleEnabled="true"
                    app:passwordToggleTint="@color/black"
                    android:layout_marginTop="12dp">
                    <EditText
                        android:id="@+id/new_password"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:ems="10"
                        android:singleLine="true"
                        android:hint="@string/new_password"
                        android:inputType="textPassword"/>
                </android.support.design.widget.TextInputLayout>

                <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textColorHint="@color/accent"
                    app:passwordToggleDrawable="@drawable/ic_remove_red_eye_black_24dp"
                    app:passwordToggleEnabled="true"
                    app:passwordToggleTint="@color/black"
                    android:layout_marginTop="12dp">
                    <EditText
                        android:id="@+id/connfirm_password"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:singleLine="true"
                        android:ems="10"
                        android:hint="@string/confirm_password"
                        android:inputType="textPassword"/>
                </android.support.design.widget.TextInputLayout>

                <com.dd.processbutton.iml.ActionProcessButton
                    android:id="@+id/done_button"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dp"
                    android:backgroundTint="@color/primary"
                    android:text="@string/done_label"
                    android:textColor="@color/white" />

                <com.dd.processbutton.iml.ActionProcessButton
                    android:id="@+id/delete_button"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="12dp"
                    android:backgroundTint="@color/primary"
                    android:text="@string/delete_label"
                    android:textColor="@color/white" />
            </LinearLayout>
        </LinearLayout>

    </android.support.design.widget.CoordinatorLayout>
</RelativeLayout>

Я реализовал необходимые библиотеки и использовал правильный идентификатор.И насколько я знаю, это не должно быть проблемой, что я реализовал это в методе oncreateView().

Ошибка, которую я получаю, гласит:

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.dd.processbutton.iml.ActionProcessButton.setMode(com.dd.processbutton.iml.ActionProcessButton$Mode)' on a null object reference

Если вы укажете мне правильное направление, это будет высоко оценено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...