小编use*_*103的帖子

Edittext输入类型密码,清除焦点android后不隐藏文本

我正在使用视图输入用户的四位数 PIN。UI 由 4 个编辑文本组成,每个编辑文本的 maxLength 设置为 1。在输入值以编辑文本 1 时,焦点将转移到第二个编辑文本,依此类推。每个 Edittext 输入类型是:numberPassword。

<EditText
            android:id="@+id/ed_1"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:gravity="center"
            android:inputType="numberPassword"
            android:maxLength="1" />
Run Code Online (Sandbox Code Playgroud)

在 java 中,为了转移焦点,我们对每个 edittext 应用了以下文本观察器:

ed1.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (s.toString().length() == 1) {
                ed1.clearFocus();
                ed2.requestFocus();
                ed2.setCursorVisible(true);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是,edittext 的值没有更改为 *,它显示了真实的输入数字(没有更改为密码)。只有第一个和最后一个更改为 *,其中作为中心的两个,这意味着 edittext 2 和 edittext 3 …

android android-edittext

5
推荐指数
1
解决办法
2970
查看次数

Firebase jobdispatcher未在指定窗口内触发

我正在实施Firebase Jobdispatcher,触发时间指定在10到20秒之间.这是我安排工作的代码:

public static void scheduleCompatibleJob(Context context) {
    FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(context));
    Job myJob = dispatcher.newJobBuilder()
            .setService(DataTrackerJobService.class) // the JobService that will be called
            .setTag("api_trigger")
            .setRecurring(true)
            .setLifetime(Lifetime.FOREVER)
            .setTrigger(Trigger.executionWindow(10, 20)) // 10 to 20 seconds
            .setReplaceCurrent(true)
            .setRetryStrategy(RetryStrategy.DEFAULT_LINEAR)
            .setConstraints(Constraint.ON_ANY_NETWORK)
            .build();

    dispatcher.mustSchedule(myJob);
}
Run Code Online (Sandbox Code Playgroud)

和服务类:

public class DataTrackerJobService extends JobService {
@Override
public boolean onStartJob(final JobParameters job) {
    Log.e("start job", "started " + job);
    (new Handler()).postDelayed(new Runnable() {
        @Override
        public void run() {
            Log.e("handler", "run");
            jobFinished(job, true);
        }
    }, 2000);
    return true; …
Run Code Online (Sandbox Code Playgroud)

android job-scheduling firebase firebase-job-dispatcher

3
推荐指数
1
解决办法
4035
查看次数