私の要件は、ユーザーが入力できるのは0から9までの数字のみであり、4文字ごとに、「-」記号が自動的に編集テキストに追加されることです。ユーザーは、編集テキストのどの部分も削除できないようにする必要があります。最後を除いて。これを行うために鍬を提案してください。
ユーザーは、入力したテキストの途中にカーソルを移動したり、削除したりできないようにする必要があります。これを達成する方法は?ユーザーがカーソルの位置を移動すると、どのようなイベントが呼び出されますか?
私の要件は、ユーザーが入力できるのは0から9までの数字のみであり、4文字ごとに、「-」記号が自動的に編集テキストに追加されることです。ユーザーは、編集テキストのどの部分も削除できないようにする必要があります。最後を除いて。これを行うために鍬を提案してください。
ユーザーは、入力したテキストの途中にカーソルを移動したり、削除したりできないようにする必要があります。これを達成する方法は?ユーザーがカーソルの位置を移動すると、どのようなイベントが呼び出されますか?
最初の要件は0〜9です。これは、XMLユーザータイプ番号でのみテキスト編集プロパティを設定し、編集テキストオブジェクトでテキストウォッチャーリスナーを設定してテキストをカウントし、そこに「-」文字を追加することで満たされます。
私は自分の問題の解決策を見つけました:ユーザーは入力されたテキストの途中のどこにもカーソルを移動できないはずです。次の関数を拡張EditText
してオーバーライドする必要があります。
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
// TODO Auto-generated method stub
// this method will check if the cursor is moved. if yes then bring back
// the cursor to the end so that the user cannot delete anythign from
// the middle of the text(here sub id). Any editing will only be
// possible at the end of the text
if (selStart == selEnd) {
int length = getText().toString().length();
setSelection(length);
}
super.onSelectionChanged(selStart, selEnd);
}