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.