Как я могу изменить текст виджета кнопки Android в коде, а не в файле XML?Android-виджет: Как изменить текст кнопки
ответ
Я был в состоянии изменить текст кнопки, как это:
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");
Вы можете использовать метод setText()
. Пример:
import android.widget.Button;
Button p1_button = (Button)findViewById(R.id.Player1);
p1_button.setText("Some text");
Кроме того, только в качестве точки отсчета, Button расширяет TextView, следовательно, почему вы можете использовать setText()
так же, как с обычным TextView.
Но на виджета findViewById не существует – Skatephone
@Skatephone: тогда вам будет легче помочь, если вы разместите немного кода. При этом класс 'RemoteViews' имеет метод' setTextViewText() '. Я бы предложил взглянуть на это: http://developer.android.com/reference/android/widget/RemoteViews.html#setTextViewText%28int,%20java.lang.CharSequence%29 – eldarerathis
@Skatephone: вы не должны вызовите findViewById на виджет, но на активность или вид. – benvd
я была кнопка в моей layout.xml, который был определен как Вид в:
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.
Работал отлично!
Это может быть не по теме, но для тех, кто борется за то, как точно изменить шрифт текста кнопки (это было моим делом, и ответ Skatephone помог мне) вот как я это сделал (если вы сделали кнопки ind режим проектирования):
Прежде всего нам нужно, чтобы название строки «конвертировано» (это грязный способ объяснить, но прямолинейно) в 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, вы можете установить Typeface метод 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
вы поставите имя ID вашего баттона (как и в предыдущем коде) и вместо MyFontName.ttf
вы положили нужный шрифт
ВНИМАНИЕ! Предполагается, что вы уже поместили свой нужный шрифт в папку активов/шрифтов. например assets/fonts/MyFontName.ttf
используйте обмен используя 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);
Это очень легко
Button btn = (Button) findViewById(R.id.btn);
btn.setText("MyText");
- 1. Как изменить текст кнопки?
- 2. Как изменить текст кнопки onclick?
- 3. VBA - Как изменить текст кнопки
- 4. Как изменить текст кнопки MessageDialog
- 5. Как изменить текст кнопки FileDialog?
- 6. Как программно изменить текст кнопки?
- 7. Как изменить текст внутри кнопки?
- 8. Изменить текст кнопки «Возврат»
- 9. Изменить текст кнопки deleteCommand
- 10. Изменить текст кнопки
- 11. UI изменить текст кнопки
- 12. Изменить текст кнопки посыла
- 13. Изменить текст кнопки немедленно
- 14. Изменить текст кнопки отправки
- 15. Изменить текст нажатой кнопки
- 16. изменить текст кнопки OnClick
- 17. Изменить текст кнопки «Просмотр корзины»
- 18. Изменить значение и текст кнопки
- 19. Изменить текст кнопки jquery mobile
- 20. Изменить текст кнопки без изменения размера кнопки
- 21. Изменить текст кнопки в jQuery
- 22. Изменить текст кнопки из xcode?
- 23. изменить текст по нажатию кнопки
- 24. Изменить текст кнопки при переполнении?
- 25. QMessageBox изменить текст стандартной кнопки
- 26. Javascript изменить текст кнопки Radio
- 27. Как изменить текст и цвет кнопки Spinner
- 28. Как изменить текст кнопки добавления вместо
- 29. Как изменить текст кнопки DIALOG после инициализации?
- 30. Как изменить текст дисплея кнопки установки условно
'((android.widget.Button) findViewById (R.id.epic_button)) SetText ("mytitle");.' –
findViewById не работает виджеты! Этот метод не поддерживается в виджетах. – coolcool1994
Это работает. Просто не забудьте добавить 'import android.widget.View;' в верхней части вашего java-файла. Если вы также добавляете 'import android.widget.Button;', его можно сократить до: '((Button) findViewById (R.id.yourButtonName)). SetText (« Новый текст »);' –