Como restringir minha entrada EditText à entrada numérica (possivelmente decimal e assinada)?

Eu liAndroid: Limitando EditText para números eComo mostro o teclado numérico em um EditText no android?. Infelizmente, nenhum deles parece atender às minhas necessidades.

Quero restringir minha entrada EditText apenas a números. No entanto, também quero permitir entrada assinada e / ou decimal.

Aqui está meu código atual (eu preciso fazer isso programaticamente):

EditText edit = new EditText(this);

edit.setHorizontallyScrolling(true);
edit.setInputType(InputType.TYPE_CLASS_NUMBER);

Com isso, meu EditText restringe alegremente toda a entrada a dígitos numéricos. Infelizmente, ele não permite mais nada, como o ponto decimal.

Se eu mudar essa linha paraedit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL), o EditText aceita todas as entradas (o que não é o que eu quero ...

Tentei combinar bandeiras (em desespero para ver se funcionaria):

edit.setInputType(InputType.TYPE_CLASS_NUMBER);
edit.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL)
edit.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED)

Isso também não funcionou (o EditText aceitou todas as entradas como de costume

Então, como faço isso?

questionAnswers(9)

yourAnswerToTheQuestion