0

誰でもこの問題を解決するのを手伝ってもらえますか? 電話番号の間にダッシュ (-) を追加しました。ここでは、私のコードについて言及しました。

// ここから削除

ここで、戻るボタンを押したときにダッシュ (-) を削除したいと考えています。私の場合、それはできません。3文字を挿入すると、ダッシュはその3つの数字の後に自動的に追加され、戻るボタンを押すとダッシュを削除できず、ダッシュの前にある3つの数字でさえ削除できないとしましょう。

すべてのテキストを選択する必要があり、次に削除を押してから削除する必要がありました..しかし、バックスペースを使用すると削除できません..どうすればそれを行うことができますか. 誰か私にこれのコードの答えを教えてもらえますか..??

よろしくお願いします、JT。


ここから更新

public class MainActivity extends Activity {
        EditText inputPhone;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.create_new_member);
            inputPhone = (EditText) findViewById(R.id.phoneText);
            inputPhone.addTextChangedListener(new TextWatcher() {
                int len = 0;
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    // TODO Auto-generated method stub
                    String str = inputPhone.getText().toString();
                    if ((str.length() == 3 && len < str.length()) || (str.length() == 7 && len < str.length())) {
                        inputPhone.append("-");
                    }
                }
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    String str = inputPhone.getText().toString();
                    len = str.length();
                }
                @Override
                public void afterTextChanged(Editable s) {
                    // TODO Auto-generated method stub
                }
            });
        }
    }
4

1 に答える 1

1

この方法に従ってください。問題は解決します

http://www.shaikhhamadali.blogspot.com/2013/06/how-to-apply-niccustom-format-to-edit.html

このソリューションのように、バックスペースのテキストの長さも確認する必要があります。

これを他の人の助けの答えとしてマークしてください。

    //get the reference of this edit text field
     EditText  etNICNO_Sender=(EditText)findViewById(R.id.etNICNO_Sender);
        /*add textChangeListner with TextWatcher argument
            by adding text change listner with text watcher we can get three methods of
            Edit Text 1) onTextChanged 2) beforeTextChanged 3) afterTextChanged
            these methods work when user types in text feild.
         */
 etNICNO_Sender.addTextChangedListener(new TextWatcher() {
   int len=0;
   @Override
   public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

  String str = etNICNO_Sender.getText().toString();

  if((str.length()==3 && len <str.length()) || (str.length()==7 && len <str.length())){
                  //checking length  for backspace.
                  etNICNO_Sender.append("-");
                  //Toast.makeText(getBaseContext(), "add minus", Toast.LENGTH_SHORT).show();
                 }
   }
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count,
     int after) {
    // TODO Auto-generated method stub
    String str = etNICNO_Sender.getText().toString();
                         len = str.length();
        }
   @Override
   public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

   }
  });
于 2013-09-18T10:53:18.030 に答える