Android-виджет: как изменить текст кнопки - PullRequest
31 голосов
/ 04 октября 2010

Как я могу изменить текст виджета кнопки Android внутри кода, а не XML-файл?

Ответы [ 7 ]

43 голосов
/ 04 октября 2010

Вы можете использовать метод setText(). Пример:

import android.widget.Button;

Button p1_button = (Button)findViewById(R.id.Player1);
p1_button.setText("Some text");

Кроме того, Кнопка расширяет TextView , поэтому вы можете использовать setText(), как с обычным TextView.

18 голосов
/ 06 октября 2010

Мне удалось изменить текст кнопки следующим образом:

import android.widget.RemoteViews;

//grab the layout, then set the text of the Button called R.id.Counter:
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.my_layout);
remoteViews.setTextViewText(R.id.Counter, "Set button text here");
1 голос
/ 11 июня 2017

Это очень просто

Button btn = (Button) findViewById(R.id.btn);
btn.setText("MyText");
1 голос
/ 25 сентября 2013

У меня в layout.xml была кнопка, которая была определена как View как в:

final View myButton = findViewById(R.id.button1);

Я не мог изменить текст на нем, пока не определил его как кнопку:

final View vButton = findViewById(R.id.button1);
final Button bButton = (Button) findViewById(R.id.button1);

Когда мне нужно было изменить текст, я использовал bButton.setText("Some Text");, а когда я хотел изменить вид, я использовал vButton.

Отлично сработало!

0 голосов
/ 10 августа 2018

// текстовая кнопка:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" text button" />

// цветная текстовая кнопка:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text button" 
        android:textColor="@android:color/color text"/>

// кнопка фона

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text button" 
        android:textColor="@android:color/white"
        android:background="@android:color/ background button"/>

// кнопка размера текста

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text button" 
        android:textColor="@android:color/white"
        android:background="@android:color/black"
        android:textSize="text size"/>
0 голосов
/ 03 августа 2016

используйте обмен используя java.setText = "...", для класса Java есть еще много методов для реализации.

    //button fechar
    btnclose.setEnabled(false);
    btnclose.setText("FECHADO");
    View.OnClickListener close = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (btnclose.isClickable()) {
                btnOpen.setEnabled(true);
                btnOpen.setText("ABRIR");
                btnclose.setEnabled(false);
                btnclose.setText("FECHADO");
            } else {
                btnOpen.setEnabled(false);
                btnOpen.setText("ABERTO");
                btnclose.setEnabled(true);
                btnclose.setText("FECHAR");
            }

            Toast.makeText(getActivity(), "FECHADO", Toast.LENGTH_SHORT).show();
        }
    };

    btnclose.setOnClickListener(close); 
0 голосов
/ 25 июня 2015

Это может быть не по теме, но для тех, кто борется с тем, как точно изменить также шрифт текста кнопки (это было в моем случае, и ответ Skatephone помог мне), вот как я это сделал (если вы сделали кнопки и дизайнmode):

Сначала нам нужно преобразовать имя строки кнопки «преобразовано» (это глупый способ объяснить, но прямо) в Java из XML, и поэтому мы вставляем вышеупомянутый код в наш файл MainActivity.java.

ВАЖНО! поместите код в метод OnCreate!

import android.widget.RemoteViews;

RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.my_layout);
remoteViews.setTextViewText(R.id.Counter, "Set button text here");

Имейте в виду:

my_layout должен быть заменен XML-файлом, где ваши кнопки

Counter должен быть заменен на идентификатор вашей кнопки ("@+id/ButtonName")

, еслиВы хотите изменить текст кнопки, просто вставьте текст вместо "Set button text here"

, здесь идет часть, где вы меняете шрифт:

Теперь, когда вы "преобразовали"из XML в Java, вы можете установить метод гарнитуры для TextView.Вставьте следующий код точно под предыдущий, только что описанный выше

TextView txt = (TextView) findViewById(R.id.text_your_text_view_id);
        Typeface font = Typeface.createFromAsset(getAssets(), "fonts/MyFontName.ttf");
        txt.setTypeface(font);

, где вместо text_your_text_view_id вы вводите идентификатор вашей кнопки (как в предыдущем коде), а вместо MyFontName.ttf вы ставите свойнужный шрифт

ВНИМАНИЕ!Это предполагает, что вы уже поместили нужный шрифт в папку assets / font.например assets / fonts / MyFontName.ttf

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