как изменить текстовый вид с помощью кнопки - PullRequest
0 голосов
/ 28 октября 2018

У меня есть один текстовый вид и одна кнопка, я могу изменить текстовый вид текста с кодом ниже:

final Textview c_tv_matn;
Button c_btn_dokme;


c_btn_dokme = (button) findviewbyid(R.id.btn1);
c_tv_matn = (Textview) findviewbyid(R.id.txt1);

c_btn_dokme.setonclickListener(new OnclickListener() {
@Override
public void onClick(View v) {
c_tv_matn.SetText("this is second text");
});

Но я хочу изменить текст из String.xml и сделать Next Button Like this;"matn_1", "matn_2" matn_3 "matn_4 ...

STRING.XML

<string name="matn_0">Hello world!</string>
 <string name="matn_1">You are hero john</string>
<string name="matn_2">you can change this world</string>
<string name="matn_3">You are so clever</string>

МОЖЕТЕ ВЫ ПОМОЧЬ МНЕ ПОЛУЧИТЬ RES ИЗ СТРОНЫ И ИЗМЕНИТЬ ТЕКСТОВОГО ТЕКСТОВОГО ТЕКСТА?С НОМЕРАМИ?

Ответы [ 3 ]

0 голосов
/ 28 октября 2018

МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ МНЕ ПОЛУЧИТЬ RES ИЗ СТРОКИ И ИЗМЕНИТЬ ТЕКСТ ТЕКСТОВОГО ВИДА С НОМЕРАМИ?

Вы можете использовать getString(int) или getText(int) для извлечения строки.getText(int) сохраняет любой форматированный текст, примененный к строке.Но в этом случае вы будете использовать getString(int), который возвращает строковое значение, связанное с конкретным идентификатором ресурса.Он будет лишен любой стилизованной текстовой информации.

Иногда вам понадобится context, как в этом случае, что вы хотите сделать это внутри Button, тогда вы можете получить context от вашегоView, или если у вас есть context в вашем Activity/Fragment, вы также можете использовать его.

Пример

Если я не понял неправильно, вы должны поставитьтекст от Strings.xml до TextView, так что вы можете сделать это так:

final Textview c_tv_matn;
Button c_btn_dokme;
int textNumber = 1;


c_btn_dokme = (button) findviewbyid(R.id.btn1);
c_tv_matn = (Textview) findviewbyid(R.id.txt1);

c_btn_dokme.setonclickListener(new OnclickListener() {
@Override
public void onClick(View v) {
switch(textNumber){
case 1:
   c_tv_matn.setText(v.getContext().getString(R.string.matn_1))
   textNumber++;
break;
case 2:
   c_tv_matn.setText(v.getContext().getString(R.string.matn_2))
   textNumber++;
break;
case 3:
   c_tv_matn.setText(v.getContext().getString(R.string.matn_3))
   textNumber++;
break;
default:
textNumber = 1;
  c_tv_matn.setText(v.getContext().getString(R.string.matn_1)
break;

});
0 голосов
/ 28 октября 2018

Создать массив в XML-файле Android

вам нужен массив в string.xml.Для справки смотрите ссылку ниже

https://www.homeandlearn.co.uk/android/grid_view_array.html

0 голосов
/ 28 октября 2018

Чтобы получить String из string.xml, вам нужно Context.

Activity - это Context, поэтому, если вы находитесь в Activity, вы можете просто позвонить getString(R.string.<the name in string.xml>), чтобы получить String, который вам нужен.

Например, getString(R.string.matn_0).

Тогда его можно применить к вашим потребностям:

c_tv_matn.SetText(getString(R.string.matn_0));

Если выне в Activity, тогда вам нужно получить Context, возможно, передав его в качестве параметра конструктору класса (и сохранить его в качестве атрибута) или в качестве параметра метода, который будет выполнятьнастройка текста.

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