Vista personalizada de Android (TextView + Button + algunos comportamientos personalizados)?

Esto debería ser muy fácil de hacer, pero de alguna manera después de unos 15 minutos de búsqueda todavía no puedo obtener la respuesta:

Quiero hacer una vista personalizada de Android combinando un TextView y un botón, además de algunos comportamientos / métodos personalizados, digamos que al hacer clic en el botón debe cambiar el TextView a "Hello, world!".

Sé que voy a tener que ampliar la clase View, y diseñar el diseño en un XML, a continuación, hacer algo de magia para vincular los dos. ¿Podría decirme cuál es la magia? Sé cómo hacer esto en una actividad, pero no en una vista personalizada.

EDITADO Ok, así que descubrí que necesito usar un Inflater para inflar mi clase con las vistas secundarias definidas en un diseño. Esto es lo que tengo:

public class MyView extends View { private TextView text; private Button button; public MyView(Context context, AttributeSet attrs) { super(context, attrs); View.inflate(context, R.layout.myview, null); } @Override protected void onFinishInflate() { super.onFinishInflate(); text = (TextView) findViewById(R.id.text); button = (Button) findViewById(R.id.button); } } 

Sin embargo, las vistas secundarias de text y button eran nulas. ¿Alguna idea? (El XML es muy simple sin ninguna modificación de lujo, sólo agarré un TextView y un botón de la barra de herramientas de eclipse y tirar.)

Ok, así que la respuesta a mi propia pregunta es: (i) ir a cenar, (ii) se extiende LinearLayout lugar de View , esto lo convierte en un ViewGroup y por lo tanto se puede pasar al inflate(...) método, pero no tienen que anular el onLayout(...) . El código actualizado sería:

 public class MyView extends LinearLayout { private TextView text; private Button button; public MyView(Context context, AttributeSet attrs) { super(context, attrs); View.inflate(context, R.layout.myview, this); } @Override protected void onFinishInflate() { super.onFinishInflate(); text = (TextView) findViewById(R.id.text); button = (Button) findViewById(R.id.button); } } 
  • Cómo establecer Opacity (Alpha) para ver en Android
  • SetClickable () no funciona en el botón
  • ¿Hay alguna manera de girar un botón sin utilizar animación en android 2.1
  • Cómo agregar el evento de botón de clic en el estudio de android
  • Pdf visor de la biblioteca con curl de página en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.