7

から特定の文字を削除できる方法があることを知りたいですEditTextEditText編集テキストの位置を指定して憲章を削除したいremoveAt()のですが、何かありEditTextますか?

    public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button b1=(Button)findViewById(R.id.button1);
        final EditText ed1=(EditText)findViewById(R.id.editText1);
        b1.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub

             //i want something like this
                    ed1.removeAt(5);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }


}

追加情報

主な問題は、すべてのテキストではなく、edittext 内でテキストを太字にしたいことです。太字ボタンをオンに設定した後に入力されるテキスト (太字は私のトグル ボタンです)。ここにコードがあります

     ed1.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            int i = 0;

            switch(event.getAction())
            {
            case KeyEvent.ACTION_UP:
                    if(bold.isChecked())
                    {
                         i=ed1.getSelectionStart();

                         ed1.append(Html.fromHtml("<b>"+ed1.getText().toString().charAt(i-1)+"</b>"));

                    }
                    return true;

            }
            return false;
        }
    });

問題は、二重文字の1つが通常の文字であり、次に太字のものになるため、その位置を指定してその通常の文字を削除したいことです

4

4 に答える 4

12

getText は編集可能を返すため、最初に文字列に変更する必要があります。

int charIndex;
String text = ed1.getText().toString();
text = text.substring(0, charIndex) + text.substring(charIndex+1);
ed1.setText(text);

文字を削除して太字の文字を同じにするには:

ed1.setText((Spanned)ed1.getText().delete(indexStart , indexEnd));

これにより、インデックス "indexStart" から "indexEnd -1" までの文字が削除されます。たとえば、delete(0,1); を使用する場合。最初の文字が削除されます。

それが役立つことを願っています:)

于 2012-08-10T16:33:31.060 に答える
4

私の実装を以下に示します。お役に立てば幸いです

int cursorPosition = mDialerEditText.getSelectionStart();
    if (cursorPosition > 0) {
          mDialerEditText.setText(mDialerEditText.getText().delete(cursorPosition - 1, cursorPosition));
        mDialerEditText.setSelection(cursorPosition-1);
    }
于 2016-02-09T09:58:37.603 に答える
1

EditTextは他の と同じですTextViewが、編集することもできます。したがって、メソッドを使用しgetText()て として保存しString、目的の文字を削除して、 でsetText(str)メソッドを呼び出しEditTextてテキストを変更できます。

于 2012-08-10T16:23:05.263 に答える
0

EditText から入力を取得し、文字列に格納します。

String temp = ed1.getText().toString();

この String temp を操作して、目的の位置にある文字を削除します。String.substring(..)(これを実現するには function を使用することをお勧めします。)

最後に、EditText で操作された文字列 temp を設定します。

ed1.setText(temp);
于 2012-08-10T17:05:26.467 に答える