J'ai créé un bouton d'image dans Android, mais rien ne se passe lorsque je clique sur ce bouton. J'ai défini toutes les propriétés mais toujours rien ne se passe. Alors pouvez-vous m'aider là où je me trompe.
fichier 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();
}
}
});
}
<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" />
Selon votre code xml, vous devez supprimer la ligne Android:onClick="onClick"
de votre bouton Image Xml.Elle fonctionnera alors car la priorité 1 ira toujours à la méthode onClick que vous avez mentionnée au format xml.
Essayez d'implémenter l'auditeur Onclick à votre activité
<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" />
/>
Aucun problème avec ce bouton
Changez votre activité comme ci-dessous
***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;
}
}
}
J'espère que ça va marcher. si vous avez un doute sur la mise en œuvre, faites le moi savoir
Vous avez besoin de quelque chose comme ça:
dans votre XML, voyez la valeur de Android:onClick
et 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" />
Dans votre fichier.Java Voir le nom de la fonction myFunctionName
et les actions à prendre lorsque l'événement est déclenché dans le cas 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
}
}
Supprimer Android:onClick="onClick"
de xml
dans Fichier XML (par exemple activity_main.xml)
<ImageButton
Android:id="@+id/search"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/home"
...
/>
dans Fichier Java (par exemple activity_main.Java)
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initiate and perform click event on button's
ImageButton search = (ImageButton)findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"search button is Clicked", Toast.LENGTH_LONG).show();
}
});
}