0

ユーザーがテキストを編集するために.(dot)を入力しているときに置き換えた次のコード,(coma)

InputFilter [] FilterArray = new InputFilter [1]; FilterArray [0] = new InputFilter(){

        @Override
        public CharSequence filter(CharSequence arg0, int arg1, int arg2,
                Spanned arg3, int arg4, int arg5) {
            String temp =arg0.toString();
            temp=temp.replace('.',',');

            return temp;
        }

    };

        etxt_kg.setFilters(FilterArray);

上記のコードは、ユーザーの各入力を正常に解釈します。ただし、。(ドット)の代わりにはなりません。

今:入力:12.45出力:1245

私が欲しいもの:入力12.45出力:12,45

ヘルプ(TIA)

編集:

問題はxmlにありました。EditTextinputType="number"。

4

1 に答える 1

3

私は同じシナリオに直面しました。ここに解決策があります

次のスニペットを使用

InputFilter filter = new InputFilter() {

    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            if (source.charAt(i) == '.') {
                return ",";
            }
        }
        return null;
    }
};

EditText editText = (EditText) findViewById(R.id.rg);
editText.setFilters(new InputFilter[] {filter});

以下は私の作業スニペットです

package org.vipul;

import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.widget.EditText;

public class AbcActivity extends Activity {
    EditText text;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        EditText etxt_kg = (EditText) findViewById(R.id.rg);
        etxt_kg.setMaxHeight(etxt_kg.getHeight());
        InputFilter filter = new InputFilter() {

            @Override
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                for (int i = start; i < end; i++) {
                    if (source.charAt(i) == '.') {
                        return ",";
                    }
                }
                return null;
            }
        };

        // EditText editText = (EditText) findViewById(R.id.rg);
        etxt_kg.setFilters(new InputFilter[] {
            filter
        });

    }
}
于 2012-06-27T07:42:21.613 に答える