Есть ли способ стилизовать TextView в нижнем регистре все его буквы? - PullRequest
0 голосов
/ 23 мая 2019

nameTextview.setAllCaps(true); этим мы можем установить весь текст в верхний регистр, как я могу установить нижний регистр?

public class MainActivity extends AppCompatActivity {

private TextView nameTextview;
private Button button1;
private Button button2;


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

    button1=findViewById(R.id.capsonID);
    button2=findViewById(R.id.capsoffID);
    nameTextview = findViewById(R.id.textview1);

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            nameTextview.setAllCaps(true);
        }
    });
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            nameTextview.  // ???????????? What should I do here ?
        }
    });
}
}

Ответы [ 4 ]

0 голосов
/ 23 мая 2019
   button1.setOnClickListener {
   tvId.setText(tvId.text.toString().toUpperCase())
   }
   button2.setOnClickListener {
   tvId.setText(tvId.text.toString().toLowerCase())
   }
0 голосов
/ 23 мая 2019

Вы можете использовать метод getText () в этом TextView и сохранить текст в объект String. И вы можете использовать метод toLowerCase () для преобразования строки во все строчные буквы, а затем использовать метод setText () для установки измененной строки в этот TextView. Не забудьте установить для setAllCaps () значение false

0 голосов
/ 23 мая 2019

Как уже упоминалось в других ответах, вы можете использовать это, чтобы перейти в нижний регистр:

    nameTextview.setText.nameTextview.getText().toString().toLowerCase());

Однако, если вы ищете что-то вроде setAllCaps, то есть измените текст на строчные безмодифицируя исходный текст, тогда вы должны использовать метод преобразования.

Действительно, setAllCaps(true), изменить строку на Uppercase:

'Hello, This Is a Test' => 'HELLO, THIS IS A TEST'

Но если вы установите setAllCaps (false) текстизмените вот так

'HELLO, THIS IS A TEST' => 'Hello, This Is a Test'

Исходный текст восстанавливается по мере ввода.

Чтобы выполнить это в нижнем регистре, вы должны создать класс, подобный этому:

public class AllLowTransformationMethod implements TransformationMethod {
    private Locale mLocale;

    public AllLowTransformationMethod(Context context) {
        this.mLocale = context.getResources().getConfiguration().locale;
    }

    public CharSequence getTransformation(CharSequence source, View view) {
        return source != null ? source.toString().toLowerCase(this.mLocale) : null;
    }

    public void onFocusChanged(View view, CharSequence sourceText, boolean focused, int direction, Rect previouslyFocusedRect) {
    }
}

Затем вы можете использовать это:

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        nameTextview.setTransformation(new AllLowTransformationMethod); 
    }
});

Для восстановления исходного текста:

nameTextview.setTransformation(null); 
0 голосов
/ 23 мая 2019

Попробуй вот так ... какой бы ни была твоя строка, чтобы установить textview. класс String предоставляет метод для строчных и прописных букв.

tv.setText(strings.toLowerCase());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...