[Android Studio] Editableを使用してテキストに文字列を追加・削除する

どうも、tatsuです!

今日は、Editableを使用してテキストに文字列を追加・削除する方法を説明します。

※この記事で使用しているAndroid Studioのバージョンは2.3.3です。

Editableを使用してテキストに文字列を追加・削除する

Editableインターフェースを使用することでテキストに文字列を追加・削除することができます。
今回はTextViewに文字列を追加・削除するプログラムを組んでみました!

MainActivity.java

MainActivity.javaは以下のようにします。

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 文字追加メソッド
    public void addStr(View view){
        // TextViewを取得
        TextView textView = (TextView) findViewById(R.id.text);
        // Editableインスタンス取得
        Editable editable = Editable.Factory.getInstance().newEditable(textView.getText());
        // ボタンを押すごとに2文字目の後ろに○を追加  2文字未満の場合は×を追加
        if(editable.length() >= 2){
            editable.insert(2, "○");
        }else{
            editable.insert(0, "×");
        }
        // TextViewにセットする
        textView.setText(editable, TextView.BufferType.EDITABLE);
    }

    // 文字削除メソッド
    public void deleteStr(View view){
        // TextViewを取得
        TextView textView = (TextView) findViewById(R.id.text);
        // Editableインスタンス取得
        Editable editable = Editable.Factory.getInstance().newEditable(textView.getText());
        // ボタンを押すごとに先頭1文字を削除
        if(editable.length() > 0){
            editable.delete(0, 1);
        }
        // TextViewにセットする
        textView.setText(editable, TextView.BufferType.EDITABLE);
    }
}

activity_main.xml

activity_main.xmlは以下のようにします。

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="あかさたな"/>

    <Button
        android:id="@+id/add"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="2文字目の後ろに1文字追加"
        android:onClick="addStr"
        />

    <Button
        android:id="@+id/delete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="先頭から1文字削除"
        android:onClick="deleteStr"
        />

結果

追加ボタン押下↓

削除ボタン押下↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です