¿Cómo puedo cambiar el texto de un widget de botón de Android dentro del código y no en el archivo XML?Android widget: Cómo cambiar el texto de un botón
Respuesta
tuve la oportunidad de cambiar el texto del botón de la siguiente manera:
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");
Puede utilizar el método setText()
. Ejemplo:
import android.widget.Button;
Button p1_button = (Button)findViewById(R.id.Player1);
p1_button.setText("Some text");
También, así como un punto de referencia, Button extiende TextView, de ahí se puede utilizar setText()
al igual que con un TextView ordinario.
Pero en un widget findViewById no existe – Skatephone
@Skatephone: será más fácil ayudarte si publicas un poco de código, entonces. Dicho esto, la clase 'RemoteViews' tiene un método' setTextViewText() '. Sugeriría echarle un vistazo a eso: http://developer.android.com/reference/android/widget/RemoteViews.html#setTextViewText%28int,%20java.lang.CharSequence%29 – eldarerathis
@Skatephone: no debería llama a findViewById en un widget, pero en una actividad o una vista. – benvd
que tenía un botón en mi layout.xml que se definió como una vista como en:
final View myButton = findViewById(R.id.button1);
no estaba capaz de cambiar el texto en él hasta que yo también lo definió como un botón:
final View vButton = findViewById(R.id.button1);
final Button bButton = (Button) findViewById(R.id.button1);
Cuando necesitaba para cambiar el texto, he utilizado la bButton.setText("Some Text");
y cuando quise alterar la vista, utilicé el vButton.
Funcionó muy bien!
Esto puede estar fuera del tema, pero para aquellos que están luchando sobre cómo exactamente cambiar también la fuente del texto del botón (ese era mi caso y la respuesta de Skatephone me ayudó) así es como lo hice (si hiciste botones ind modo de diseño):
Primero debemos tener el nombre de la cadena del botón "convertido" (es una manera sucia de explicar, pero directa) en java desde el xml, así que pegamos el código antes mencionado en nuestra MainActivity.java
¡IMPORTANTE! ¡coloque el código bajo el método OnCreate!
import android.widget.RemoteViews;
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.my_layout);
remoteViews.setTextViewText(R.id.Counter, "Set button text here");
Tenga en cuenta:
my_layout
tiene que ser sustituido por el archivo XML en sus botones son
Counter
tiene que ser sustituido por el nombre de identificación del botón ("@+id/ButtonName"
)
si quieres cambiar el texto del botón basta con insertar el texto en lugar de "Set button text here"
aquí viene la parte donde se cambia el tipo de letra:
Ahora que "convertido" de XML para Java, se puede establecer un tipo de letra método para TextView.Pegue el siguiente código exactamente debajo de la anterior acaba de describir
TextView txt = (TextView) findViewById(R.id.text_your_text_view_id);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/MyFontName.ttf");
txt.setTypeface(font);
, donde en lugar de text_your_text_view_id
se pone el nombre de identificación de su botón (como que el código anterior) y en lugar de MyFontName.ttf
poner su fuente deseada
¡ADVERTENCIA! Esto supone que ya colocaste la fuente deseada en la carpeta assets/font . p.ej. assets/fonts/MyFontName.ttf
usa el intercambio usando java. setText = "...", para la clase java hay muchos más métodos para la implementación.
//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);
Esto es muy fácil
Button btn = (Button) findViewById(R.id.btn);
btn.setText("MyText");
- 1. ¿Cómo podemos cambiar la imagen de un botón de widget?
- 2. Cambiar el foco de un widget de texto a otro
- 3. Cómo implementar un botón en un widget de Android
- 4. Cómo cambiar el texto de un TextView presionando un botón
- 5. Cambiar el texto y la acción del botón - android development
- 6. Botón personalizado de Android; cambiar el color del texto
- 7. Cómo cambiar el tamaño de un botón según su texto
- 8. Cómo recuperar texto de Textbox en el widget de Android?
- 9. ¿Cambiar el texto del botón de xcode?
- 10. Cómo leer el texto de un texto Tkinter Widget
- 11. cambiar dinámicamente el ancho de un botón en Android
- 12. Cómo cambiar el texto del botón de retroceso de uinavigationbar
- 13. Cómo resaltar texto en un widget de texto tkinter
- 14. Cambiar tamaño: Botón de radio Android
- 15. Cómo cambiar el color del botón y el texto de forma dinámica en Android
- 16. ¿Cómo establecer el foco en un widget de botón programáticamente?
- 17. ¿Cómo cambiar el tamaño del texto según el tamaño del widget en una vista de texto en un appwidget?
- 18. ¿Cómo cambiar el color del texto de un Android ToogleButton en el cambio de estado?
- 19. Android: botón Editar texto Ir
- 20. Cómo configurar el texto del botón de imagen (Android)?
- 21. Cambiar el lado que aparece el texto en un botón de radio
- 22. Android: ¿cómo cambiar el estado del botón presionado programáticamente?
- 23. Procesando más de un botón, haga clic en el widget de Android
- 24. Cómo cambiar el fondo de diseño widget de programáticamente
- 25. Centro de texto, botón de Android
- 26. TableLayout y el botón de Android cambiar el tamaño
- 27. Tkinter cambiar el color de fondo en seleccione un widget de texto fuera de foco
- 28. ¿Cómo borrar todo desde el widget de texto tkinter?
- 29. Texto de alineación izquierda dentro de un botón en Android
- 30. cómo cambiar texto en Android TextView
'((android.widget.Button) findViewById (R.id.epic_button)) setText ("myTitle.");' –
findViewById no funciona para widgets! Este método no es compatible con widgets. – coolcool1994
Funciona. Solo asegúrese de agregar 'import android.widget.View;' en la parte superior de su archivo java. Si también agrega 'import android.widget.Button;', se puede acortar a: '((Button) findViewById (R.id.yourButtonName)). SetText (" Nuevo texto ");' –