¿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 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?

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 } }); 
  • Cómo ocultar / mostrar el botón en el widget de pantalla de inicio de Android
  • Open-Source Ejemplos de aplicaciones Android bien diseñadas?
  • Android: ¿Obtener la altura del elemento ListView?
  • Cómo crear la interfaz de usuario como la foto adjunta
  • Accede a la base de datos sqlite de Android desde el PC de desarrollo
  • Mostrar tostada compleja de BroadcastReceiver
  • Actualizaciones de interfaz de usuario de subprocesos en Android
  • Fuente personalizada en Android
  • TextView no se adhiere a la parte superior derecha
  • Diseño de GUI no tradicional en Android
  • Android: la visibilidad del sistema de pantalla completa atornilla las ventanas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.