Выравнивать только новый текст, введенный в EditText, игнорируя старый

if(position == 1) {
  editText.setGravity(Gravity.CENTER);
  editText.append("\n");
} else  {
   editText.setGravity(Gravity.START);
   editText.append("\n");
}

Если position = 1, то по центру выравнивается ВЕСЬ текст(и к началу строки, если position != 1). Но мне нужно, чтобы выравнивался только нововведенный текст, игнорируя ранее написанный. Как я могу это реализовать?


Ответы (1 шт):

Автор решения: Maks

Есть вариант сделать 2 Edittext примерно вот так:

<LinearLayout
android:orientation="vertical">
<EditText
android:id="@+id/et1"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:nextFocusForward="@+id/et2"
android:background="@null"/>

<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="false"/>
<LinearLayout>

суть в том что когда пользователь вводит данные в edittext1 и нажимает enter тогда его перекидывает на edittext2. Так же желательно добавить это в OnCreate что бы пользователь не смог начать писать сразу в edittext2:

 EditText txtEdit1 = (EditText) findViewById(R.id.et1);
 EditText txtEdit2 = (EditText) findViewById(R.id.et2);

 txtEdit2.setOnFocusChangeListener(new OnFocusChangeListener() {          
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus && txtEdit1.getText()!="") {
         editText1.requestFocus();
        }
    }
});

Надеюсь вам поможет это решение

→ Ссылка