Android agrega ID a un diseño
¿Cómo se define un ID en un diseño?
Estoy intentando agregar una identificación a un linearlayout y fijar un oyente del onclick:
- Android: ¿Cómo generar automáticamente código Java desde el archivo de diseño?
- NullPointerException que no apunta a ninguna línea en mi código
- Android: IllegalStateException llamando a DialogFragment
- Vista personalizada con clics en Notificación en Android 2.3 o inferior
- Mejor opción de diseño de base de datos para aplicaciones de Android con datos enormes
XML:
<LinearLayout android:id="@+id/?????????" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:onClick="btnHandler" > </LinearLayout>
Clase:
public class MainActivity extends Activity { //.... public void btnHandler(View v){ switch(v) { case R.id.????? : } } }
- cómo configurar el ancho de los botones en android para cubrir el ancho de la pantalla?
- Android, programatically diseño de una vista de botón?
- Do onMeasure en Android devuelve Tamaño incluyendo relleno y margen?
- Cómo dejar que el ImageView y el TextView tengan la misma altura
- ¿Por qué no se permite inflar mi TableLayout?
- Android: la gravedad falla en API 18+
- ¿Cómo usar los iconos y la plantilla incorporados?
- Modificación del diseño del título de diálogo en Android
Ya que tienes esto
<LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:onClick="btnHandler" > </LinearLayout>
Puedes hacer lo siguiente
public void btnHandler(View v) { switch(v.getId()) // use v.getId() { case R.id.linearlayout : break; // also don't forget the break; } }
Editar:
Si tiene un botón, puede hacer lo siguiente.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/linearlayout" android:onClick="clickEvent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bt1" android:text="button" android:onClick="clickEvent" /> </LinearLayout>
Entonces en su actividad
public void clickEvent(View v) { switch(v.getId()) { case R.id.linearlayout : Log.i("......"," linear layout clicked"); break; case R.id.bt1 : Log.i("......"," button clicked"); break; } }
En lugar de
switch(v)
utilizar
switch(v.getId())
Y establecer su id desde el xml
android:id="@+id/idValue"
La forma más fácil sería simplemente añadirlo en su diseño xml:
<LinearLayout android:id="@+id/myId" <!-- the part where the id is being created --> android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:onClick="btnHandler" > </LinearLayout>
A continuación, puede hacer referencia desde su código a través de your.package.R.id.myId
.
<LinearLayout android:id="@+id/lineaLayoutId" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:onClick="btnHandler" > </LinearLayout>
public class MainActivity extends Activity { //.... public void btnHandler(View v){ switch(v) { case R.id.lineaLayoutId : break; } } }
En onCreate () de su Actividad:
findViewById(R.id.?????????).setOnClickListener(this);
Y haga que su actividad implemente View.OnClickListener.
@Override public void onClick(View view) { if(view.getId() == R.id.?????????) { //your code for on click } }
- No se puede cargar el archivo HTML local en Android WebView
- ¿Cuál es el diseño predeterminado de un ImageView?