オリジナルのAndroid2.2に設定されているデバイスキーボードには自動大文字化と自動置換機能があり、これらの機能をオンにすると機能しないことが判明し、テスト部門がこのバグについて言及しました。動作しなかったことを確認しました。長い間探しました。最終的に TextKeyListener.java のこのコード行を変更しました。
//return QwertyKeyListener.getInstance(mAutoText, mAutoCap); //これはネイティブです
return QwertyKeyListener.getInstance(true, Capitalize.SENTENCES); //これは私が追加したものです
その後、機能します。autoreplace には xml-en/autotext.xml があります。
<words>
20 <word src="abouta">それについて</word>
21 <word src="aboutit">それについて</word>
22 <word src="aboutthe">それについて</word>
23 < word src="acheive">達成</word>
24 <word src="acheived">達成</word>
25 <word src="acheiving">達成</word>
26 <word src="acomodate">対応</word>
27 <word src="accomodate">対応</word>
28 <word src="acn">できる</word>
29 <word src="adn">および</word>
……
これらの単語が含まれている限り、自動的に置き換えられます(言語は英語です)。
「このように変更すれば大丈夫だろうと思っていました。1か月後、テスト部門からバグが報告され、パスワード入力ボックスが自動的に置き換えられ、自動的に大文字になるようになりました。今は混乱しており、変更方法がわかりません」 。。。。
その後、GOOGLE は、EditText コントロールに「android:autoText」と「android:capitalize」という 2 つの属性があることを発見しました。これら 2 つが TRUE に設定されている限り、自動置換と自動大文字化が機能します。
次に、数か月前に変更したコードを復元しました。。。。
無駄な作業をしないためにも、変更する前にこの機能の働きを理解しておく必要がありそうです。