¿Cómo puedo hacer que un TextView se vea como un botón?
Tengo una ListActivity en Android. Cada fila es sólo un elemento que inicia otra actividad con algún recurso. Por defecto esto es, por supuesto, un TextView.
Me gustaría (y por "me gustaría", me refiero a "el cliente insiste") que TextView para parecerse a un botón. Si en realidad los hago Botones, el manejador de clics de listas predeterminado ya no funciona – incluso si no son enfocables – así que tengo que escribir código para inflar manualmente la vista que contiene el botón y establecer un controlador de clics.
- Hay un iUI para el Android
- ¿Cuál es la relación entre píxeles y píxeles escalados
- ¿Cómo crear dinámicamente un botón y asignarle un estilo definido en styles.xml?
- Cambio de fragmentos o actividades (es decir, diseños) en el cambio de orientación
- Crear un texto tachado en Android?
¿Hay alguna manera en lugar de mí apenas puedo hacer que el TextView se parece a un botón sin ningunos de los comportamientos de un botón?
- Implementación de las directrices de diseño de Google para Sliders
- Cómo cambiar el color de fondo de la aplicación de forma permanente
- Ventaja de ListFragment sobre un ListView o Fragmento normal
- ¡gesto de deslizar! Android en la aplicación de swipe perezoso
- Disposición de Android: vistas cuadráticas
- Atributos XML del diseño de combinación a RelativeLayout a través de inflar
- Alineación de componentes en RelativeLayout
- Cómo hacer que la barra de acción SearchView rellene toda la barra de acción?
Debería poder configurar el estilo en el archivo XML de diseño.
Consulte http://developer.android.com/reference/android/R.style.html para obtener una lista del estilo de plataforma incorporado. No estoy seguro de lo bien que funcionaría, pero es razonablemente fácil de hacer. Prueba esto:
<TextView android:layout_height="wrap_content" style="@android:style/Widget.Button" android:layout_marginRight="5sp" android:text="" android:layout_width="fill_parent"></TextView>
EDIT: el problema es que el estilo de botón predeterminado establece el atributo android:clickable
. Pruebe a agregar el atributo android:clickable
y android:clickable
en false:
<TextView android:layout_height="wrap_content" style="@android:style/Widget.Button" android:layout_marginRight="5sp" android:text="" android:clickable="false" android:layout_width="fill_parent"></TextView>
Joe,
Debería ser capaz de crear un Drawable
de un botón y usar setBackgroundDrawable()
en TextView
.
Alternativamente, puede utilizar el atributo XML de android:background
.
Tome esta disposición completa de mi proyecto:
<?xml version="1.0" encoding="utf-8"?> <!-- Solution 1: New Button appearance --> <!--TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" style="@android:style/Widget.DeviceDefault.Button" android:textAllCaps="false" android:focusable="false" android:clickable="false" /--> <!-- Solution 2: Old Button appearance --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:drawable/btn_default" android:gravity="center_vertical|center_horizontal" />
Sin clickable = false onItemClick () no se dispara en ListView / GridView, etc.
Sin focusable = false no tiene el efecto de botón presionado cuando presiona un botón TextView.
En el conjunto de vistas de texto XML:
android:clickable="true"
Y en el conjunto de archivos java:
TextView youtTextView=(TextView)findViewById(R.id.yourTxt); youtTextView.setOnClickListener(new OnClickListener() { public void onClick(View v) { //code your button click action/event } });
- Android en las pruebas de suscripción de aplicaciones
- Android personalizado ListView repite el fondo de selección