条纹CardInputWidget返回Null

时间:2019-04-24 21:20:34

标签: java android stripe-payments

条纹CardInputWidget返回null。如何找到空值背后的推理以及如何避免这种情况的其他信息?

我正在Android min SDK 17中运行Stripe(在模拟器中运行目标SDK 28。)

我遇到一个问题,当输入有效的卡时,CardInputWidget返回null。我只是将自己的卡详细信息输入到小部件中进行测试。

我已经测试过视图是否正确膨胀,但是问题是调用.getCard()的问题,无论在视图中键入什么,它都会返回null。

这是我片段中的Java(step2_ billing.java ):

View view = inflater.inflate(R.layout.fragment_step1_billing, container, false);

final Button next = (Button)view.findViewById(R.id.next_step);

viewPager = (ViewPager) getActivity().findViewById(R.id.checkout_pager);

CardInputWidget mCardView = (CardInputWidget) view.findViewById(R.id.card_multiline);
final Card card = mCardView.getCard();

next.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (card == null){
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setTitle("Card Error");
            builder.setMessage("The card information is incorrect.  Please check again and attempt to submit.");
            builder.setPositiveButton("OK", null);
            AlertDialog dialog = builder.create();
            dialog.show();
        } else {
            viewPager.setCurrentItem(2);
        }
    }
});

来自CardInputWidget的布局中的XML(fragment_step1_ billing.xml ):

<com.stripe.android.view.CardInputWidget
        android:id="@+id/card_multiline"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingStart="10dp"
        android:paddingEnd="10dp"
        android:layout_marginTop="12dp"
        android:layout_marginStart="25dp"
        android:layout_marginEnd="30dp"
        android:background="@drawable/white_rounded"
        android:theme="@style/LoginEditText"/>

应用Gradle的实现

    implementation 'com.stripe:stripe-android:8.7.0'

预期结果是转到viewPager中的下一个片段。结果是AlertDialog。我觉得自己在搜索任何信息时都处于高潮和低谷,但是却很快就找不到了。

有什么想法吗?

编辑1 我的进口货:

import com.stripe.android.model.Card;
import com.stripe.android.view.CardInputWidget;

0 个答案:

没有答案