How to set onClick event in ImageButton?

I created a single image button in Android, but when I click on this button, nothing happens. I set all the properties, but nothing happens. So you can help me if I am wrong.

xml file

    <?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();                    
                }               
               }  
             });
    }
+4
source share
5 answers
<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" />

According to your xml, you should remove the line android:onClick="onClick"from your Xml X button. Then it will work, because the first priority will always be used for the onClick method, which you mentioned in xml.

+4
source

You need something like this:

XML . android:onClick 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" />

file.java . myFunctionName , 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
  }

}
+1

android:onClick="onClick" xml

+1

Onclick

 <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" />
    />

   ***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;
        }
    }

}

, . - ,

+1

XML (, activity_main.xml)

<ImageButton
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/home"
...
/>

Java (, 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();
           }
       });
    }
0

All Articles