goodiebag / pinview Goto Github PK
View Code? Open in Web Editor NEWA pinview library for android. :sparkles:
License: MIT License
A pinview library for android. :sparkles:
License: MIT License
how to use drawable in app:hint thank
OTP not fully visible when i enter OTP only half part of the digit is visible rest goes up inside the box.
Hi, i want to add 6 pins but layout gets disturbed. How do i reduce space between pins?
Thanks
When the input type is set to password anything the user enters turn into a bullet point instantly without being visible for even a few milliseconds.
Please let me know how to change the color of cursor to black which is as of now blinking in red color.
how to set text size?
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
at java.util.ArrayList.get(ArrayList.java:439)
at com.goodiebag.pinview.Pinview.onKey(Pinview.kt:435)
at android.view.View.dispatchKeyEvent(View.java:14574)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1999)
at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:555)
at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1907)
at android.app.Activity.dispatchKeyEvent(Activity.java:4203)
at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:124)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:86)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:142)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:599)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3090)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:442)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6902)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6759)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6228)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6290)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6251)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6425)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6259)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6482)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6232)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6290)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6251)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6259)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6232)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9372)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9312)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9258)
at android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl(ViewRootImpl.java:5984)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:5850)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8248)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:589)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1071)
How do clear?
how to enter 4 digit number in each box
Hi
I use PinView on Fragment but Keyboard not focus PinView
Who can help me?
Thank for answer
The problem is that on several keyboards onKey() method is not getting called for key event KEYCODE_DEL on pressing Backspace/Delete.
This seems to be a serious bug since user can't type a new pin if he has entered a wrong one.
if i include this library in project,
i get the following error, please provide a fix.
Executing tasks: [:app:assembleDebug] in project /home/attaullah/AndroidStudioProjects/Racheron
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:compileDebugAidl NO-SOURCE
> Task :app:compileDebugRenderscript NO-SOURCE
> Task :app:dataBindingMergeDependencyArtifactsDebug UP-TO-DATE
> Task :app:dataBindingMergeGenClassesDebug UP-TO-DATE
> Task :app:generateDebugResValues UP-TO-DATE
> Task :app:generateDebugResources UP-TO-DATE
> Task :app:mergeDebugResources UP-TO-DATE
> Task :app:dataBindingGenBaseClassesDebug UP-TO-DATE
> Task :app:generateDebugBuildConfig UP-TO-DATE
> Task :app:writeDebugApplicationId UP-TO-DATE
> Task :app:generateSafeArgsDebug UP-TO-DATE
> Task :app:checkDebugAarMetadata UP-TO-DATE
> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
> Task :app:extractDeepLinksDebug UP-TO-DATE
> Task :app:processDebugMainManifest FAILED
[com.android.support:animated-vector-drawable:28.0.0] /home/attaullah/.gradle/caches/transforms-2/files-2.1/9d3e6dc301483367fed7017e1df05a8c/animated-vector-drawable-28.0.0/AndroidManifest.xml Warning:
Package name 'android.support.graphics.drawable' used in: com.android.support:animated-vector-drawable:28.0.0, com.android.support:support-vector-drawable:28.0.0.
[androidx.versionedparcelable:versionedparcelable:1.1.1] /home/attaullah/.gradle/caches/transforms-2/files-2.1/b2156729350c545798d54a40891d393c/versionedparcelable-1.1.1/AndroidManifest.xml Warning:
Package name 'androidx.versionedparcelable' used in: androidx.versionedparcelable:versionedparcelable:1.1.1, com.android.support:versionedparcelable:28.0.0.
/home/attaullah/AndroidStudioProjects/Racheron/app/src/main/AndroidManifest.xml:24:18-86 Error:
Attribute application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) from [androidx.core:core:1.5.0] AndroidManifest.xml:24:18-86
is also present at [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:6:5-22:19 to override.
See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed with multiple errors, see logs
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 3s
12 actionable tasks: 1 executed, 11 up-to-date
Hello there. Is there any chance that it displays number randomly each time? If there is, than would you please let me know how to do it?
I found some problem,On some android devices, quick clicks will lose data
For example, I quickly enter 1234, View on the display may be 14, this is what happens to me on Samsung SM-G9350(android 6.0.1)
I need your help
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
at java.util.ArrayList.get(ArrayList.java:439)
at com.goodiebag.pinview.Pinview.onTextChanged(Pinview.java:73)
at android.widget.TextView.sendOnTextChanged(TextView.java:10959)
at android.widget.TextView.setText(TextView.java:6384)
at android.widget.TextView.setText(TextView.java:6184)
at android.widget.EditText.setText(EditText.java:146)
at android.widget.TextView.setText(TextView.java:6141)
at sefryek.com.hamrahbanksepah.activityActivation.ReceiveCodeActivity.clearPinViewChild(ReceiveCodeActivity.java:49)
at sefryek.com.hamrahbanksepah.activityActivation.ReceiveCodeActivity.setFonts(ReceiveCodeActivity.java)
at sefryek.com.hamrahbanksepah.activityActivation.ReceiveCodeActivity$configResendCode$1.invoke(ReceiveCodeActivity.java:27)
at sefryek.com.hamrahbanksepah.activityActivation.ReceiveCodeActivity$configResendCode$1.invoke(ReceiveCodeActivity.java:27)
at sefryek.com.hamrahbanksepah.activityActivation.ReceiveCodeActivity$configResendCode$1.invoke(ReceiveCodeActivity.java:2)
at sefryek.com.hamrahbanksepah.activityActivation.ReceiveCodeActivity$configResendCode$1.invoke(ReceiveCodeActivity.java:2)
at sefryek.com.hamrahbanksepah.Extention.GroupKt$sam$i$android_view_View_OnClickListener$0.onClick(GroupKt.java:2)
at android.view.View.performClick(View.java:7339)
at android.widget.TextView.performClick(TextView.java:14222)
at android.view.View.performClickInternal(View.java:7305)
at android.view.View.access$3200(View.java:846)
at android.view.View$PerformClick.run(View.java:27788)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7073)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
Your pin view is soo soo perfect until you forgot one important thing that even the very basic edit text has, setting the text. There is not method for setting the text to the pin view for example the android phone is automatically reading the sent OTP and has to be set to the pin view, someone atleast needs to resolve this
I need setBottomButtonStyle,if text counts<4,the button.setenable(false); text counts==4,button.setenable(true)
Here is the build log: https://jitpack.io/com/github/GoodieBag/Pinview/v1.5/build.log
When I press DEL button to clear one tile (cursor is visible), the previous tile is also cleared. I debugged the code and found out that the problem maybe is in onKey()
method:
else if (currentTag > 0) {
mDelPressed = true;
if (editTextList.get(currentTag).length() == 0) {
//Takes it back one tile
editTextList.get(currentTag - 1).requestFocus();
//Clears the tile it just got to
editTextList.get(currentTag).setText("");
} else {
//If it has some content clear it first
editTextList.get(currentTag).setText("");
}
}
I can't figure it out why calling setText("")
when current tile has already length = 0. The previous tile has gained focus and so the currentFocus
has been changed. Now calling setText("")
on cached currentTag
causes textChangeListener
to get called and:
else if (charSequence.length() == 0) {
int currentTag = getIndexOfCurrentFocus();
mDelPressed = true;
//For the last cell of the non password text fields. Clear the text without changing the focus.
if (editTextList.get(currentTag).getText().length() > 0)
editTextList.get(currentTag).setText("");
}
Above lines clears the previous tile, because currentTag
is now updated and previous tile is the currentFocus
.
I have the pin view created, assigned an Id, and is present in resource.cs
The problem is that I am trying to reference the view in my settings activity so I can use the onDataEntered method to get the values, but my reference variable is always null. Even though using breakpoints tells me that the view I have referenced is not null.
`using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Gms.Ads;
using Android.Preferences;
using Com.Goodiebag.Pinview;
using static Com.Goodiebag.Pinview.Pinview;
namespace JourneyAssistant
{
[Activity(Label = "Settings")]
public class SettingsActivity : Activity, IPinViewEventListener
{
//Variable declarations
AdView mAdView;
ISharedPreferences preferences;
ISharedPreferencesEditor editor;
Switch hideAddress;
Button saveBTN;
EditText streetName;
EditText area;
EditText town;
EditText county;
EditText postcode;
Pinview pinView;
string pinViewPin;
public string userPin;
bool hideAddressStatus;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_settings);
//Initialise Xamarin Essentials API
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
pinView = new Pinview(this);
streetName = FindViewById<EditText>(Resource.Id.streetName);
area = FindViewById<EditText>(Resource.Id.area);
town = FindViewById<EditText>(Resource.Id.town);
county = FindViewById<EditText>(Resource.Id.county);
postcode = FindViewById<EditText>(Resource.Id.postcode);
saveBTN = FindViewById<Button>(Resource.Id.saveBTN);
mAdView = FindViewById<AdView>(Resource.Id.adView);
hideAddress = FindViewById<Switch>(Resource.Id.hideAddress);
pinView = FindViewById<Pinview>(Resource.Id.pinEntry);
EditText[] editTexts = new EditText[] { streetName, area, town, county, postcode };
MobileAds.Initialize(this, "ca-app-pub-5407142743467927~1824688848");
AdRequest adRequest = new AdRequest.Builder().Build();
mAdView.LoadAd(adRequest);
preferences = PreferenceManager.GetDefaultSharedPreferences(this);
hideAddressStatus = preferences.GetBoolean("hideAddress", false);
userPin = preferences.GetString("userPin", "Pin not set");
if (hideAddressStatus == true)
{
pinView.SetPinViewEventListener(this);
hideAddress.Checked = true;
streetName.Text = preferences.GetString("streetName", "");
area.Text = preferences.GetString("area", "");
town.Text = preferences.GetString("town", "");
county.Text = preferences.GetString("county", "");
postcode.Text = preferences.GetString("postcode", "");
streetName.Visibility = ViewStates.Invisible;
area.Visibility = ViewStates.Invisible;
town.Visibility = ViewStates.Invisible;
county.Visibility = ViewStates.Invisible;
postcode.Visibility = ViewStates.Invisible;
}
else
{
pinView.SetPinViewEventListener(this);
hideAddress.Checked = false;
streetName.Text = preferences.GetString("streetName", "");
area.Text = preferences.GetString("area", "");
town.Text = preferences.GetString("town", "");
county.Text = preferences.GetString("county", "");
postcode.Text = preferences.GetString("postcode", "");
streetName.Visibility = ViewStates.Visible;
area.Visibility = ViewStates.Visible;
town.Visibility = ViewStates.Visible;
county.Visibility = ViewStates.Visible;
postcode.Visibility = ViewStates.Visible;
};
hideAddress.CheckedChange += (s, e) =>
{
if (e.IsChecked)
{
if (pinViewPin == "")
{
Toast.MakeText(this, "Please set a PIN",ToastLength.Short).Show();
}
hideAddressStatus = true;
streetName.Visibility = ViewStates.Invisible;
area.Visibility = ViewStates.Invisible;
town.Visibility = ViewStates.Invisible;
county.Visibility = ViewStates.Invisible;
postcode.Visibility = ViewStates.Invisible;
}
else
{
hideAddressStatus = false;
streetName.Visibility = ViewStates.Visible;
area.Visibility = ViewStates.Visible;
town.Visibility = ViewStates.Visible;
county.Visibility = ViewStates.Visible;
postcode.Visibility = ViewStates.Visible;
}
};
saveBTN.Click += delegate
{
foreach (EditText e in editTexts)
{
if (e.Text == "")
{
Toast.MakeText(this, "All address fields are required", ToastLength.Short).Show();
break;
}
}
saveSettings();
};
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
public void saveSettings()
{
editor = preferences.Edit();
editor.PutString("streetName", streetName.Text);
editor.PutString("area", area.Text);
editor.PutString("town", town.Text);
editor.PutString("county", county.Text);
editor.PutString("postcode", postcode.Text);
editor.PutBoolean("hideAddress", hideAddressStatus);
editor.Commit();
Toast.MakeText(this, "Settings saved", ToastLength.Short).Show();
}
public void OnDataEntered(Pinview pinView, bool fromUser)
{
Toast.MakeText(this, "" + pinView.Value, ToastLength.Short).Show();
}
}
}`
Does anybody know whats going on please?
how to change any text field
when you type faster it delays and couldn.'t type, how can I fix this
If there a method or a way to disable the pinView dynamically so that the user cannot input anymore? I tried setEnabled(false), but it doesn't work.
@Vatican-Cameos I am not able to change the color of the input text as well as for hint. Please let me know how this can be done
Hi, i used your pineview and its working but i want to reset the value in pinview on button click,how should i do that? i use to set the value as 0000 by calling setvalue() method but it problem is when i called getValue() after that i get only 0000 not the user enter value after reset, please help me.
Whenever user click on Pin field then value is enter. Keyboard showing but not working.
I just want to know when new version will release with setvalue() method working as i was added this library
in my project.
in some devices i had this crash
Fatal Exception: java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.sabbar.seeker.ibtikar.ui.auth.AuthRepository.doSendOtp(AuthRepository.java:45)
at com.sabbar.seeker.ibtikar.ui.auth.AuthViewModel.submitOtpToVerification(AuthViewModel.java:90)
at com.sabbar.seeker.ibtikar.ui.auth.OtpCodeFragment$buildOtpCode$1.onDataEntered(OtpCodeFragment.java:132)
at com.goodiebag.pinview.Pinview.onTextChanged(Pinview.java:406)
at android.widget.TextView.sendOnTextChanged(TextView.java:8636)
at android.widget.TextView.handleTextChanged(TextView.java:8701)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:10914)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1061)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:582)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:503)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:39)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:698)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:204)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:191)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:295)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:82)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:210)
at android.app.ActivityThread.main(ActivityThread.java:5982)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:852)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:742)
Hi ,
I want to use v1.3 in this library but I closed the backup from the manifest.
"android:allowBackup="false"" , and then sync ;
Attribute application@allowBackup value=(false) from AndroidManifest.xml:16:9-36
is also present at [com.github.GoodieBag:Pinview:v1.3] AndroidManifest.xml:12:9-35 value=(true).
Suggestion: add 'tools:replace="android:allowBackup"' to element at AndroidManifest.xml:15:5-59:19 to override.
Pinview pin = (Pinview) findViewById(R.id.pinview);
pin.setPinViewEventListener(new Pinview.PinViewEventListener() {
@Override
public void onDataEntered(Pinview pinview, boolean fromUser) {
if(pinview.getValue() == "1234") {
Toast.makeText(MainActivity.this, pinview.getValue(), Toast.LENGTH_SHORT).show();
}
}
});
This should make a toast when I enter 1234 but it doesn't. Phone: Xiaomi MI 10T.
below here sample code input type number but in keyboard still has text
<com.goodiebag.pinview.Pinview android:id="@+id/pinview1" android:layout_width="0dp" android:layout_height="wrap_content" android:background="@drawable/bg_tag_rect" android:layout_marginLeft="35dp" android:layout_marginRight="35dp" android:layout_marginTop="20dp" app:cursorVisible="false" app:hint="" app:pinBackground="@drawable/bg_box_tag" app:inputType="number" app:forceKeyboard="true" app:password="false" app:pinHeight="28dp" app:pinLength="6" app:pinWidth="28dp" app:layout_constraintTop_toBottomOf="@+id/lbl2" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/>
Android 9 api 28 honor 8 pro
Github source has clearValue()
function
public void setValue(@NonNull String value) {
String regex = "[0-9]*"; // Allow empty string to clear the fields
fromSetValue = true;
if (inputType == InputType.NUMBER && !value.matches(regex))
return;
int lastTagHavingValue = -1;
for (int i = 0; i < editTextList.size(); i++) {
if (value.length() > i) {
lastTagHavingValue = i;
editTextList.get(i).setText(((Character) value.charAt(i)).toString());
} else {
editTextList.get(i).setText("");
}
}
if (mPinLength > 0) {
if (lastTagHavingValue < mPinLength - 1) {
currentFocus = editTextList.get(lastTagHavingValue + 1);
} else {
currentFocus = editTextList.get(mPinLength - 1);
if (inputType == InputType.NUMBER || mPassword)
finalNumberPin = true;
if (mListener != null)
mListener.onDataEntered(this, false);
}
currentFocus.requestFocus();
}
fromSetValue = false;
updateEnabledState();
}
And for same method on maven its showing
public void setValue(@NonNull String value) {
String regex = "[0-9]+";
this.fromSetValue = true;
if (this.inputType != Pinview.InputType.NUMBER || value.matches(regex)) {
int lastTagHavingValue = -1;
for(int i = 0; i < this.editTextList.size(); ++i) {
if (value.length() > i) {
lastTagHavingValue = i;
((EditText)this.editTextList.get(i)).setText(Character.valueOf(value.charAt(i)).toString());
} else {
((EditText)this.editTextList.get(i)).setText("");
}
}
if (this.mPinLength > 0) {
if (lastTagHavingValue < this.mPinLength - 1) {
this.currentFocus = (View)this.editTextList.get(lastTagHavingValue + 1);
} else {
this.currentFocus = (View)this.editTextList.get(this.mPinLength - 1);
if (this.inputType == Pinview.InputType.NUMBER || this.mPassword) {
this.finalNumberPin = true;
}
if (this.mListener != null) {
this.mListener.onDataEntered(this, false);
}
}
this.currentFocus.requestFocus();
}
this.fromSetValue = false;
}
}
May also be related to issue #33
if there are 4 pin fields and pinview.setValue("123"); is called - the app crashes.
Hello. Can you please add field for change pin color? Thank you.
There is no Method to set Hint Text Color
@Vatican-Cameos
Hi..
Please help me, why my project could not resolve this??
How can I customize the font and size of the text on the pin?
I also want to change the distance between the PIn with each other?
Can you provide the solution?
I need the keyboard open only if some condition is true, but not always,
can I change that setting : app:forceKeyboard="true" from the JAVA class?
The number of normal input times is too much to be input ,How to set PinView unavailable
Greetings,
How i solve it
Keyboard remain open before Pinview Screen reach using fragments
How to set cursor color in pinview?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.