Rajkiran
Rajkiran

Reputation: 16191

Clickable Button (or any View) inside EditText in android

I want to have a Button or a clickable View in my EditText so that I can perform some action on click of it. I was able to put a drawable inside my EditText thanks to Marcosbeirigo for this answer. But, now I want to make it clickable so that I can perform some action on it. I know this is possible as HTC uses buttons inside EditText in their stock sms app as shown in the following image-

Send button in EditText

In my case, the button will be positioned anywhere, can be in the center also. But the main thing is how can I put a button in EditText?

Upvotes: 10

Views: 26862

Answers (6)

Ganesh Giri
Ganesh Giri

Reputation: 1161

output

Use this this code may work.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RelativeLayout
        android:id="@+id/REFReLayTellFriend"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="horizontal"
        android:paddingBottom="5dp"
        android:paddingTop="5dp">

        <EditText
            android:id="@+id/txtSearch"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/editext_rounded"
            android:drawableLeft="@android:drawable/ic_menu_search"
            android:gravity="start"
            android:hint="Search"
            android:singleLine="true"/>

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@+id/txtSearch"
            android:background="@drawable/ic_action_content_filter_list"/>

    </RelativeLayout>

</LinearLayout>

Upvotes: 0

papaiatis
papaiatis

Reputation: 4291

Use RelativeLayout. The Send and Attach buttons are simple Android Buttons and the 32/160 is a TextView. Put the buttons and the textview on the EditText object, play with the layout arrangments and set some right padding to the EditText object so that the text inside it won't go under the buttons.

You don't need any drawable and listening to the click event of the android buttons is not a question anymore. Its absolutely correct

Upvotes: 11

Gauraw
Gauraw

Reputation: 404

Use this , It worked for me -

 <RelativeLayout android:layout_width="match_parent"
     android:layout_height="wrap_content">

            <EditText android:id="@+id/id_search_EditText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:paddingRight="40dp"
                android:hint="Enter your feelings and connect" />

        <ImageButton android:id="@+id/id_search_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/id_search_EditText"
            android:layout_alignBottom="@+id/id_search_EditText"
            android:layout_alignRight="@+id/id_search_EditText"
            android:background="@drawable/ic_launcher"/>

      </RelativeLayout>

Upvotes: 7

StErMi
StErMi

Reputation: 5469

The only possible solution is to use a RelativeLayout that allow you to put also Views in overlay to others. Other Layout wont allow you to do such things.

Also I found this tutorial: http://developer.android.com/resources/articles/layout-tricks-merge.html maybe it can helps you :)

Upvotes: 0

Trung Nguyen
Trung Nguyen

Reputation: 7532

I think you try to search set click event for compound drawable. You can find some solutions here

handling-click-events-on-a-drawable-within-an-edittext

Upvotes: 2

Buda Gavril
Buda Gavril

Reputation: 21657

there is no button inside editText It's just an editText with white background so you don't see it's margins and a simple layout arrangement.

Upvotes: 0

Related Questions