我正在研究如何通过以下方式在我的应用程序中自定义数字:
>主题:文档显示了如何更改表单的颜色主题,但没有显示如何(如果可能)更改视图布局或添加/删除视图元素.我可以更改DigitsAuthButton的文本吗?另一个非常重要的示例是更改android os后退按钮的功能.
>流程:我想自定义身份验证流程.例如,当电话号码在我的服务器中无效时,Android用户将被定向到新屏幕(不一定是注册/创建帐户).我还想实现自定义错误处理(即,确认代码不正确时进行自定义对话等)
我希望有任何使用过Digits经验的人都可以提供反馈,以了解它是否是我想要做的正确工具,如果是,我将如何进行这些自定义.
解决方法:
您可以签出开源的Cannonball Sample project.
要更改DigitsAuthButton的文本,可以通过扩展DigitsAuthButton来添加自定义的Digits按钮:
public class DigitsRegisterButton extends DigitsAuthButton {
public DigitsRegisterButton(Context c) {
super(c);
init();
}
public DigitsRegisterButton(Context c, AttributeSet attrs) {
super(c, attrs);
init();
}
public DigitsRegisterButton(Context c, AttributeSet attrs, int defStyle) {
super(c, attrs, defStyle);
init();
}
private void init() {
if (isInEditMode()) {
return;
}
setBackgroundResource(R.drawable.digits_button_bg);
// Modifying the text here..
setText(getResources().getString(R.string.digits_register_text));
setTextColor(getResources().getColor(R.color.theme_color));
}
}
然后,您可以在布局内部使用和自定义此代码,如下所示:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.pinchat.pinchat.view.DigitsRegisterButton
android:id="@+id/signup_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/digits_button_bg"
android:text="@string/digits_register_text"
android:textColor="@color/theme_color"
android:textSize="@dimen/digits_register_btn_text"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:drawableStart="@drawable/ic_signin_phone"
android:drawableLeft="@drawable/ic_signin_phone"/>
</RelativeLayout>
我尚未尝试使用您的第二个查询.但是由于代码是开源的,因此可以查看它-Digits on GitHub.该存储库中还有一个值得研究的示例.