条纹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;