Набор inputType для EditText Программно?

Прежде всего, я думаю, что это неправда, что «концепция, которая больше относится к объектно-ориентированному миру, является исключением» . Исключения существуют во многих функциональных языках семейства ML, и, например, OCaml довольно сильно полагается на них и использует их даже для определенных структур потоков управления. В F # это не так, потому что .NET-исключения несколько медленнее, но я вижу исключения, очень ортогональные к объектно-ориентированной / функциональной проблеме.

По этой причине я нахожу исключения, часто более предпочтительными, чем типы опций в F #. Недостатком является то, что меньше проверок типов (вы не знаете, что может генерировать), но есть и то, что язык обеспечивает хорошую встроенную поддержку языков для исключений. Если вам нужно обработать исключительные ситуации, то исключения - хороший способ сделать это!

Чтобы ответить на ваш первоначальный вопрос о синтаксических уловках, которые вы можете сделать - я, вероятно, просто использовал бы функцию в качестве вашей существующий код делает это, потому что он явный и простой для понимания (и, вероятно, вам понадобится только перенос исключений в некоторых реализуемых вами основных функциях).

Тем не менее, вы можете определить построитель выражений вычислений, который оборачивает код в тело и служит в качестве вашей функции catchAll с несколько более точным синтаксисом:

type CatchAllBuilder() = 
  member x.Delay(f) = try Some(f()) with _ -> None
  member x.Return(v) = v

let catchAll = CatchAllBuilder()

Это позволяет вам писать что-то вроде:

catchAll { return Array.empty.[0] }

Как упоминалось ранее, я бы не стал этого делать, потому что (i) я не думаю, что все исключения нужно преобразовывать в опции в F #, и (ii) он вводит незнакомый синтаксис, который новые члены команды (и будущие вы) могут быть сбиты с толку, но это, вероятно, самый хороший синтаксис, который вы можете получить.

[РЕДАКТИРОВАТЬ: Теперь рабочая версия с return - это несколько менее красиво, но, возможно, все еще полезно!]

203
задан Vadim Kotov 31 January 2019 в 05:23
поделиться

3 ответа

Согласно документам TextView , программной версией android: password является setTransformationMethod () , а не setInputType (). Что-то вроде:

mEdit.setTransformationMethod(PasswordTransformationMethod.getInstance());

должно помочь.

206
ответ дан 23 November 2019 в 04:56
поделиться
field.setInputType(InputType.TYPE_CLASS_TEXT);
0
ответ дан 23 November 2019 в 04:56
поделиться

Попробуйте добавить это в тег EditText / TextView в вашем макете.

android:password="true"

Изменить: Я просто перечитал ваш пост, возможно, вам нужно сделать это после создания. Я не понимаю, почему ваш фрагмент не работает.

0
ответ дан 23 November 2019 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: