0

たとえば、「これは質問です」というテキストがありますが、いくつかの手がかりから推測する必要があります。アプリでは、ユーザーはEditTextに「__ _ _ _ _ _ _ _ _ _ _ _ _ 」と表示されます。必要なのは、ユーザーがそのEditTextに何かを入力すると、各「」が自動的に次の順序で置き換えられることです。左から右へ。つまり、「T hisisaqu _ _ _ ___」のようになります。

私はこの世界ではかなり新しいので、ユーザー入力を必要なものなどに置き換えることができるリスナーをEditTextに追加する必要があるかどうかはわかりません。

任意の応答は非常に高く評価されます

ありがとう。

4

1 に答える 1

0

キーが入力されるたびに、このメソッドを使用します。

 public static int getIndex(String input) {
    return input.replaceAll("_", "").length();
}

public static String prepareOutput(String actual, String input) {
    input = input.replaceAll("_", "");
    int diff = actual.length() - input.length();
    if (diff < 0) {
        return input;
    }
    for (int i = 0; i < diff; i++) {
        input += "_";
    }
    return input;
}

このような:

 final EditText ed = (EditText) findViewById(R.id.editText1);
    ed.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            String input = s.toString();
            String output = prepareOutput("This is a question", input);
            if (output.compareTo(input) != 0) {
                ed.setText(output);
                ed.setSelection(getIndex(output));
            }
        }
    });
于 2013-02-08T10:21:45.193 に答える