A single EditText instead of a classical form. Library that implements flavienlaurent's singleinputform

Overview

Icon

material-singleinputform

Android Arsenal JitPack Build Status License

A single EditText instead of a classical form.

This Library is a library implementation of flavienlaurent's "Single input form"

Very inspired by the Minimal Format Interface.

Implement any form with only one EditText. The idea here is to pack a multiple input form in one field. As a result, the user input is easier and a more fluent process.

Also, TextSwitcher got completely rediscovered to animate the form: title, error message. It's very basic but simple to use.

Here is a video demonstrating a sample form: http://youtu.be/A99g6NDvn_w

Demo

A demo app is available on Google Play:

Get it on Google Play

Screenshots

Checkbox input E-mail input Password input
Checkbox input E-mail input Password input
CheckBoxStep.java TextStep.java TextStep.java

Dependency

material-singleinputform is available on jitpack.io

Gradle dependency:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}
dependencies {
	compile 'com.heinrichreimersoftware:material-singleinputform:3.0.3'
}

How-To-Use

Step 1: Your Activity must extend SingleInputFormActivity:

public class MainActivity extends SingleInputFormActivity {
	//...
}

Step 2: Implement abstract methods:

public class MainActivity extends SingleInputFormActivity{
	private static final String DATA_KEY_EXAMPLE = "example";
	
	@Override
	protected List<Step> getSteps(Context context){
		List<Step> steps = new ArrayList<Step>();
		steps.add(new TextStep(
				context,
				DATA_KEY_EXAMPLE,
				InputType.TYPE_CLASS_TEXT,
				R.string.example,
				R.string.example_error,
				R.string.example_details)
		);
		//Add more steps here...
		return steps;
	}
	
	@Override
	protected void onFormFinished(Bundle data){
		//Get the form data
		String text = TextStep.text(data, DATA_KEY_EXAMPLE);
		//...
	}
}

Step 3: Theme:

<style name="YourThemeForSingleInputFormActivity" parent="Theme.AppCompat.Light.NoActionBar">
	<!-- Used for: input field background -->
	<item name="colorPrimary">@color/material_bordeaux_500</item>
	
	<!-- Used for: form progress color, status bar color (API 21+) -->
	<item name="colorPrimaryDark">@color/material_bordeaux_700</item>
	
	<!-- Used for: title text color, error text color -->
	<item name="android:textColorPrimary">@color/material_bordeaux_800</item>
	
	<!-- Used for: details text color, step indicator text color -->
	<item name="android:textColorSecondary">@color/material_black_54</item>
	
	<!-- Used for: input text color, input widget color -->
	<item name="android:textColorPrimaryInverse">@color/material_white_100</item>
	
	<!-- Used for: input widget color -->
	<item name="android:textColorSecondaryInverse">@color/material_white_70</item>
</style>

Open source libraries

material-singleinputform uses the following open source libraries or files:

License

Copyright 2016 Heinrich Reimer

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Async Validation and prevent activity auto closing when completed

    Async Validation and prevent activity auto closing when completed

    Changed validation to use a callback therefore allowing for async validation Removed finishing of activity when form is completed

    fixes https://github.com/HeinrichReimer/material-singleinputform/issues/12 and https://github.com/HeinrichReimer/material-singleinputform/issues/11

    opened by thedumbtechguy 10
  • #1 Fix global structure

    #1 Fix global structure

    I redesign the global structure of the project to use Builder Pattern.

    Remove starting creation of all the steps view (was consuming a lot of time).

    The view is created the first time is needed and reused in case is need. TODO remove view to release memory after view being used.

    Fix bug with device lower v21 using ?attr/colorPrimary in progress_single_input_form.xml was making them crash, because was not able to find attr.

    Remove the finish activity onFormCompleted, so it can be decided on the callback what to do.

    Added Options example as well as modified the others.

    opened by marcelpinto 10
  • Class Not found exception

    Class Not found exception

    Hi,

    I am facing Class not found exception: ================= From Logs ==================== Caused by: java.lang.ClassNotFoundException: Didn't find class "com.heinrichreimersoftware.singleinputform.R$layout" on path: DexPathList[[zip file "/data/app/my.package,name/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

    I am using exact same code as in the examples, except the fact that this form is being launched from another activity.

    I can also post stack trace in-case required.

    I would be grateful for any help.

    UPDATE: Trace stack:

    01-03 16:37:45.461 8963-8963/my.package.name E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: recommned.contect.web.iwrs, PID: 8963 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/heinrichreimersoftware/singleinputform/R$layout; at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.onCreate(SingleInputFormActivity.java:112) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.heinrichreimersoftware.singleinputform.R$layout" on path: DexPathList[[zip file "/data/app/my.package.name-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469)             at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.onCreate(SingleInputFormActivity.java:112)             at android.app.Activity.performCreate(Activity.java:5933)             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)             at android.app.ActivityThread.access$800(ActivityThread.java:144)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)             at android.os.Handler.dispatchMessage(Handler.java:102)             at android.os.Looper.loop(Looper.java:135)             at android.app.ActivityThread.main(ActivityThread.java:5221)             at java.lang.reflect.Method.invoke(Native Method)             at java.lang.reflect.Method.invoke(Method.java:372)             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Suppressed: java.lang.ClassNotFoundException: com.heinrichreimersoftware.singleinputform.R$layout at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 15 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

    type-bug flag-trash 
    opened by stripathi669 9
  • Add Asynchronous validation

    Add Asynchronous validation

    I'd like to be able to validate some data server side, e.g. Username and email uniqueness.

    I am working on this currently. I was thinking a callback will be passed along with the input. Rather than just returning a boolean, we can add an error message. That way we fallback on the default message if non is provided. This has the benefit allowing the user to have more control over the error message.

    While validating, we can show a loading spinner. Any thoughts? I'll work on this and send a pull.

    type-enhancement priority-med 
    opened by thedumbtechguy 6
  • incompatible with AppCompat v21

    incompatible with AppCompat v21

    Hi,

    It's incompatible with AppCompat v21 because of 'better-pickers' dependency. See here: https://github.com/derekbrameyer/android-betterpickers/issues/120

    Also here for the solution: https://github.com/matthew-woolley/android-betterpickers

    You may reference it locally since that the original developer was not worried about that!

    type-bug priority-high 
    opened by semsamot 4
  • Toolbar

    Toolbar

    Hello.

    I would like to know how can i place a Toolbar in the view, since i can not override onCreate or onCreateSteps will not be shown.

    And how can i center the steps, since they are always on the top on the screen.

    Thank you.

    priority-med type-documentation flag-trash 
    opened by JonnyCiel 2
  • Activity finished after last step

    Activity finished after last step

    I noticed that the activity closed automatically after the last step. Checking the code, I noticed you call finish after onFormFinished. Is there a reason for this? Personally I wanted d to post some data to the server. Is there some special reason for this? If not, I can send a pull request.

    type-enhancement priority-med 
    opened by thedumbtechguy 2
  • Feat base fragment kotlin

    Feat base fragment kotlin

    It refers to #19 issue. It's the same code as SingleInputFormActivity, I just made some adaptations to the Fragment context and converted the code into the Kotlin file. It needs to be improved but already works with fragments.

    opened by jeancsanchez 1
  • Multiple Exceptions occur

    Multiple Exceptions occur

    i keep getting these errors

    FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.heinrichreimersoftware.singleinputform.example/com.heinrichreimersoftware.singleinputform.example.MainActivity}: android.view.InflateException: Binary XML file line #84: Error inflating class android.widget.ProgressBar at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995) at android.app.ActivityThread.access$600(ActivityThread.java:128) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4517) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #84: Error inflating class android.widget.ProgressBar at android.view.LayoutInflater.createView(LayoutInflater.java:606) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) at android.view.LayoutInflater.rInflate(LayoutInflater.java:742) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.onCreate(SingleInputFormActivity.java:118) at android.app.Activity.performCreate(Activity.java:4470) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)  at android.app.ActivityThread.access$600(ActivityThread.java:128)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4517)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:586) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.onCreate(SingleInputFormActivity.java:118)  at android.app.Activity.performCreate(Activity.java:4470)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)  at android.app.ActivityThread.access$600(ActivityThread.java:128)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4517)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)  at dalvik.system.NativeStart.main(Native Method)  Caused by: android.content.res.Resources$NotFoundException: File res/drawable/progress_single_input_form.xml from drawable resource ID #0x7f02004e at android.content.res.Resources.loadDrawable(Resources.java:1986) at android.content.res.TypedArray.getDrawable(TypedArray.java:601) at android.widget.ProgressBar.(ProgressBar.java:255) at android.widget.ProgressBar.(ProgressBar.java:239) at android.widget.ProgressBar.(ProgressBar.java:235) at java.lang.reflect.Constructor.constructNative(Native Method)  at java.lang.reflect.Constructor.newInstance(Constructor.java:417)  at android.view.LayoutInflater.createView(LayoutInflater.java:586)  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)  at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.onCreate(SingleInputFormActivity.java:118)  at android.app.Activity.performCreate(Activity.java:4470)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)  at android.app.ActivityThread.access$600(ActivityThread.java:128)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)  at android.os.Handler.dispatchMessage(Handler.java:99)  at android.os.Looper.loop(Looper.java:137)  at android.app.ActivityThread.main(ActivityThread.java:4517)  at java.lang.reflect.Method.invokeNative(Native Method)  at java.lang.reflect.Method.invoke(Method.java:511)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)  at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 at android.content.res.TypedArray.getColor(TypedArray.java:326) at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:783) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:869) at android.graphics.drawable.ScaleDrawable.inflate(ScaleDrawable.java:111) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:869) at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:165) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:869) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:806) at android.content.res.Resources.loadDrawable(Resources.jav

    flag-invalid flag-trash 
    opened by leighayanid 1
  • Activitiy crash when using build tools 23.0.2

    Activitiy crash when using build tools 23.0.2

    Caused by: android.content.res.Resources$NotFoundException: File res/drawable/progress_single_input_form.xml from drawable resource ID #0x7f02004f

    Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2

    Followed the example to the letter and got a crash, any help is appreciated.

    type-bug priority-high 
    opened by iflp 1
  • Failed to find discreteseekbar

    Failed to find discreteseekbar

    The library seems to require another module discreteseekbar which is not included.

    Error:A problem occurred configuring project ':app'.

    Could not resolve all dependencies for configuration ':app:_debugCompile'. Could not find Android-SingleInputForm:discreteseekbar:unspecified. Searched in the following locations: https://jcenter.bintray.com/Android-SingleInputForm/discreteseekbar/unspecified/discreteseekbar-unspecified.pom https://jcenter.bintray.com/Android-SingleInputForm/discreteseekbar/unspecified/discreteseekbar-unspecified.jar file:/C:/Users/IBM_ADMIN/AppData/Local/Android/sdk/extras/android/m2repository/Android-SingleInputForm/discreteseekbar/unspecified/discreteseekbar-unspecified.pom file:/C:/Users/IBM_ADMIN/AppData/Local/Android/sdk/extras/android/m2repository/Android-SingleInputForm/discreteseekbar/unspecified/discreteseekbar-unspecified.jar file:/C:/Users/IBM_ADMIN/AppData/Local/Android/sdk/extras/google/m2repository/Android-SingleInputForm/discreteseekbar/unspecified/discreteseekbar-unspecified.pom file:/C:/Users/IBM_ADMIN/AppData/Local/Android/sdk/extras/google/m2repository/Android-SingleInputForm/discreteseekbar/unspecified/discreteseekbar-unspecified.jar Required by: uma:app:unspecified > com.heinrichreimersoftware.singleinputform:library:2.0

    flag-duplicate flag-trash 
    opened by thedumbtechguy 1
  • On update, implemented methods changed.

    On update, implemented methods changed.

    Hi Heinrich, I updated this lib recently (3.0.3), and I've broken it. I have made a minimum working example, the same as your example, and there is an error that I need to implement abstract method onCreateSteps(). Does this replace getSteps() that is given in the example?

    I am also getting an error on new TextStep, where I think it is required to use a Builder now? The error is :

    error: constructor TextStep in class TextStep cannot be applied to given types; required: Builder found: Context,String,int,String,int,String reason: actual and formal argument lists differ in length

    These two issues prevent it working for me right now.

    Apologies if anything is obvious here, I'm a new developer!

    opened by Leepee 1
  •  java.lang.IndexOutOfBoundsException: Index: 12, Size: 12

    java.lang.IndexOutOfBoundsException: Index: 12, Size: 12

    at java.util.ArrayList.get(ArrayList.java:411) at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.getStep(SingleInputFormActivity.java:200) at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.getCurrentStep(SingleInputFormActivity.java:196) at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity.nextStep(SingleInputFormActivity.java:408) at com.heinrichreimersoftware.singleinputform.SingleInputFormActivity$2.onClick(SingleInputFormActivity.java:100) at android.view.View.performClick(View.java:5637) at android.view.View$PerformClick.run(View.java:22433) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6195) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

    opened by TheOrangeTester 4
Releases(3.0.3)
Owner
Jan Heinrich Reimer
📚 Student • 💻 Developer • 🏛️ European
Jan Heinrich Reimer
Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I develop easy to understand , modify and integrate Chips Edit Text widget for Android

Chips EditText Library Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I deve

kpbird 381 Nov 20, 2022
Android form edit text is an extension of EditText that brings data validation facilities to the edittext.

Android Form EditText Android form edit text is an extension of EditText that brings data validation facilities to the edittext. Example App I built a

Andrea 1.5k Dec 14, 2022
Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Provides easy means to validate with dependencies.

android-formidable-validation Form validation and feedback library for Android. Provides .setText for more than just TextView and EditText widgets. Pr

Linden 147 Nov 20, 2022
Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText.

AnimatedEditText for Android This repository contains AnimatedEditText and TextDrawable all of which extend the behaviour of EditText and implement fe

Ali Muzaffar 439 Nov 29, 2022
Library project with a custom view that implements the Float Label pattern

AndroidFloatLabel This repository contains an Android library project for Android 4.0+ with a custom view that implements the Float Label pattern (htt

Ian G. Clifton 475 Dec 27, 2022
A library to show emoji in TextView, EditText (like WhatsApp) for Android

Discontinued This projected is discontinued. Please consider using other alternative, i.e EmojiCompat. Contact me if you want to continue working on a

Hieu Rocker 3.6k Jan 5, 2023
Android library contain custom realisation of EditText component for masking and formatting input text

Masked-Edittext Masked-Edittext android library EditText widget wrapper add masking and formatting input text functionality. Install Maven <dependency

Evgeny Safronov 600 Nov 29, 2022
A custom EditText with a switchable icon which shows or hides the password

Deprecated This library is deprecated now as there is an official way to use the password toggle with the TextInputLayout (inside the support library

Maksim 430 Nov 20, 2022
AutosizeEditText for Android is an extension of native EditText that offer a smooth auto scale text size.

AutoscaleEditText AutosizeEditText for Android is an extension of native EditText that offer a smooth auto scale text size. Latest Version How to use

Txus Ballesteros 354 Nov 28, 2022
A module designed to encapsulate the use of an Android EditText field for gathering currency information from a user. Supports all ISO-3166 compliant locales/currencies.

CurrencyEditText CurrencyEditText is an extension of Android's EditText view object. It is a module designed to provide ease-of-use when using an Edit

Josh Kitchens 335 Dec 25, 2022
An extension of Android's TextView, EditText and Button that let's you use the font of your choice

AnyTextView (deprecated) Note: AnyTextView is no longer being maintained. I recommend replacing AnyTextView with the Calligraphy library instead. Frus

Hans Petter Eide 165 Nov 11, 2022
Add text masking functionality to Android EditText. It will prevent user from inserting not allowed signs, and format input as well.

MaskFormatter MaskFormatter adds mask functionality to your EditText. It will prevent user from inserting not allowed signs, and format input as well.

Azimo Labs 161 Nov 25, 2022
Simple way to create linked text, such as @username or #hashtag, in Android TextView and EditText

Simple Linkable Text Simple way to create link text, such as @username or #hashtag, in Android TextView and EditText Installation Gradle Add dependenc

Aditya Pradana Sugiarto 76 Nov 29, 2022
A simple Android Tag EditText

TagEditText A simple Android Tag EditText. Setup The easiest way to add the TagEditText library to your project is by adding it as a dependency to you

HearSilent 15 May 5, 2022
An Android App example of how to create a custom EditText using DoubleLinkedList Data Structure

DoubleLinkedListEditText Library This is a library to create an EditText based on the Doubly Linked List data structure so that the user can enter cod

Layon Martins 1 Nov 9, 2021
Uma máscara personalizável para EditText, que pode ser adicionada como um TextWatcher.

Custom-Mask-for-EditText ?? ( Máscara personalizável para EditTexts!) Uma máscara customizável que pode ser adicionada aos seus EditTexts, e adaptada

Thyago Neves Silvestre 3 Jun 14, 2022
Irineu A. Silva 2 Feb 17, 2022
library to implement and render emojis For Android

Release Notes SuperNova-Emoji SuperNova-Emoji is a library to implement and render emojis. Minimum SDK Level: 9 (2.3) Contact Java Usage To use defaul

Hani Al-momani 360 Jan 3, 2023
💰 A library to dynamically format your EditTexts to take currency inputs

CurrencyEditText A library to dynamically format your EditTexts to take currency inputs. Gradle Dependency Add the dependency to your app's build.grad

Cotta & Cush Limited 115 Dec 28, 2022