studio programacion herramientas fundamentos con avanzado aplicaciones android events onclick listener android-imagebutton

android - programacion - ¿Cómo se configuró el evento onClick en un ImageButton?



manual de android en pdf (4)

He creado un botón de imagen en Android, pero cuando hago clic en ese botón, no ocurre nada. He configurado todas las propiedades, pero todavía no está sucediendo nada. Entonces, ¿puedes ayudarme en eso donde estoy equivocado?

archivo xml

<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout android:id="@+id/widget39" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="50dp" android:layout_x="0dp" android:layout_y="3dp" /> <ImageButton android:id="@+id/search" android:layout_width="40dp" android:layout_height="41dp" android:layout_x="312dp" android:layout_y="10dp" android:clickable="true" android:onClick="onClick" android:background="@drawable/search" /> /> </AbsoluteLayout>

search.java

public class SearchData extends Activity { ImageButton search; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_data); search =(ImageButton)findViewById(R.id.search); search.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { try { ConnectService(); } catch (Exception e) { e.printStackTrace(); } } }); }


Eliminar android:onClick="onClick" de xml


Intenta implementar el oyente Onclick a tu actividad

<ImageButton android:id="@+id/search" android:layout_width="40dp" android:layout_height="41dp" android:layout_x="312dp" android:layout_y="10dp" android:clickable="true" android:onClick="onClick" android:background="@drawable/search" /> />

No hay problema con este botón

Cambie su actividad como a continuación

***search.java*** public class SearchData extends Activity implements OnClickListener{ ImageButton search; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_data); search =(ImageButton)findViewById(R.id.search); search.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.search: try { ConnectService(); } catch (Exception e) { e.printStackTrace(); } break; } } }

Espero que funcione si tiene alguna duda para implementar esto, hágamelo saber


Necesitas algo como esto:

en su XML vea el valor de android:onClick y android:id :

<ImageButton android:id="@+id/search" android:layout_width="40dp" android:layout_height="41dp" android:layout_x="312dp" android:layout_y="10dp" android:clickable="true" android:onClick="myFunctionName" android:background="@drawable/search" />

En su archivo .java Vea el nombre de la función myFunctionName y las acciones cuando se myFunctionName el evento en el caso de case R.id.search:

public class SearchData extends Activity { ImageButton search; public void myFunctionName(View view) { switch (view.getId()) { case R.id.search: try { ConnectService(); } catch (Exception e) { e.printStackTrace(); } break; } } protected void onCreate(Bundle savedInstanceState) { // code } }


<ImageButton android:id="@+id/search" android:layout_width="40dp" android:layout_height="41dp" android:layout_x="312dp" android:layout_y="10dp" android:clickable="true" android:onClick="onClick" android:background="@drawable/search" />

De acuerdo con su xml, debe eliminar la línea android:onClick="onClick" de su botón Image Xml. Luego, funcionará porque la primera prioridad se aplicará siempre en el método ClickClick que mencionó en xml.