2012-03-07 10 views
1

EditTextで一度に1文字ずつ削除するボタンを作成する方法を知っていますか?ボタンを使用してEditTextのテキストを削除する

私はどのように行うのか分からないので、本当にラメの試みであるとして、次の試してみました:

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.keypad_0: 
     edittext.setText(edittext.getText() + "0"); 
     break; 
    case R.id.keypad_1: 
     edittext.setText(edittext.getText() + "1"); 
     break; 
    case R.id.keypad_2: 
     edittext.setText(edittext.getText() + "2"); 
     break; 
    case R.id.keypad_3: 
     edittext.setText(edittext.getText() + "3"); 
     break; 
    case R.id.keypad_4: 
     edittext.setText(edittext.getText() + "4"); 
     break; 
    case R.id.keypad_5: 
     edittext.setText(edittext.getText() + "5"); 
     break; 
    case R.id.keypad_6: 
     edittext.setText(edittext.getText() + "6"); 
     break; 
    case R.id.keypad_7: 
     edittext.setText(edittext.getText() + "7"); 
     break; 
    case R.id.keypad_8: 
     edittext.setText(edittext.getText() + "8"); 
     break; 
    case R.id.keypad_9: 
     edittext.setText(edittext.getText() + "9"); 
     break; 
    case R.id.keypad_minus: 
     edittext.setText(edittext.getText() + "-"); 
     break; 
    case R.id.keypad_del: 
     edittext.setText(edittext.getText().length() - 1); //attempt here 
     break; 

誰もがあなただけの削除を希望している場合

+0

INT長= edittext.getText()のtoString()の長さ(); edittext.setText(edittext.getText().toString()サブストリング(0、。。長さ-1)); –

+0

ありがとうございました。理由を説明できますか?私はあなたがこれを行うために部分文字列が必要であると理解していない – a7omiton

+1

私はとにかく、部分文字列がテキストの冒頭で始まると思うと思う、長さは2 - 1 = 1と言うようになる: – a7omiton

答えて

2

を共有してください知っている場合を

edittext.getText().toString().substring(0, edittext.getText().toString().length()-1); 

上記のコードは、インデックス0の部分文字列を文字列-1の長さに戻します。 。

+0

それはなければならない、そう?長さは1ベースです。 – Moritz

+0

は私のためには機能しませんが、タイプ文字列を編集可能に変換することはできません。逆も言えます。でも、サミールの答えは魅力のように機能します。とにかくローレンス。 – a7omiton

+0

サブストリングのドキュメントをチェックすると、上記のコードは要求された出力を生成します。 http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#substring(int、int) – Ljdawson

2

別の変形:

edittext.setText(edittext.getText().delete(edittext.length() - 1, edittext.length())); 
+0

これは私のために働いてくれた解決策でした。 – Jack

関連する問題