0

私は Android の単位変換アプリを持っています。元々は英語のみだったので、さらに言語を追加しています。アプリで使用する独自のソフト キーボードを設計し、デフォルトのソフト キーボードを無効にしました。ソフト キーボードは、ボタンと onclick リスナーを使用して、テキストを edittext に直接配置します。

これが私のボタンのコードです。amount と amount2 は edittext です

b2.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    myVib.vibrate(25);
                    if(getCurrentFocus()==amount){
                        amount.append("2");
                    }
                    if(getCurrentFocus()==amount2){
                        amount2.append("2");
                    }
                }
            });
            b3.setOnClickListener(new View.OnClickListener(){
                public void onClick(View v){
                    myVib.vibrate(25);
                    if(getCurrentFocus()==amount){
                        amount.append("3");
                    }
                    if(getCurrentFocus()==amount2){
                        amount2.append("3");
                    }
                }
            });

アラビア語やアフリカーンス語などのロケールを追加するまではすべて問題ありませんでした。アラビア語ロケールを使用すると、英語で 1 を入力するボタンを押すと、アラビア語の記号/数字が 1 に入力されます。数字に解析できないため、クラッシュが発生します。計算のために、アフリカーンス語でも「.」機能していない、

すべての入力を厳密に英語にロックする方法があるかどうかを尋ねていますが、リソースなどのために他のロケールを維持しています.?

4

1 に答える 1

1

これはうまくいくようです。このコードを OnCreate メソッド内に貼り付けることにより

Locale locale = new Locale("en"); 
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;

アプリの「内部」動作を英語に設定し、私の入力はすべて英語です。しかし、最良の部分は、文字列などにユーザーのロケールを維持および採用することです。

于 2013-05-24T08:37:37.660 に答える