Android add border to edit text programmatically

I used this example and tried to add it to my edit text programmatically like editText.setBackgroundResource(R.drawable.edit_text_back);, but it does not work. How can I accomplish this? Any suggestions or ideas?

EDIT The editText is defined programmatically as well.

  • Android FragmentTransaction commit When?
  • Spotify ListView header image effect
  • How to add -Xlint:unchecked to my Android Gradle based project?
  • What optimizations can I expect from Dalvik and the Android toolchain?
  • Wanted: offline IDE for developing Html / JavaScript on Android tablet
  • Get text string from EditText?
  • EditText editText = new EditText(this.getApplicationContext());
    

    I added this to a table row

    TRIED

    editText.setBackground(getResources().getDrawable(R.drawable.edit_text_back));
    editText.setBackgroundDrawable(getResources().getDrawable(R.drawable.edit_text_back));
    

    EDIT TEXT CREATION

    TableRow row = (TableRow) findViewById(R.id.table_row_kind);
    TableRow.LayoutParams rowP = new TableRow.LayoutParams();
            rowP.setMargins(10, 0, 0, 0);
    editText = new EditText(this.getApplicationContext());
    editText .setGravity(Gravity.FILL_HORIZONTAL);
    editText .setLayoutParams(rowP);
    editText .setFilters(new InputFilter[]{txtFilter});
    editText.setBackground(getResources().getDrawable(R.drawable.edit_text_back));
    

    row.xml

    <TableRow
        android:id="@+id/table_row_kind"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dip" >
    
        <TextView
           android:layout_width="250sp"
           android:text="Kind"
           android:textAppearance="?android:attr/textAppearanceLarge" />
    </TableRow>
    

  • Add identification to marker on google maps v2 api for android
  • error executing aapt, all of the sudden
  • How to add a Dropdown item on the action bar
  • Handle on item long click on recycler view
  • Android Camera : data intent returns null
  • Android HttpURLConnection throwing EOFException
  • 6 Solutions collect form web for “Android add border to edit text programmatically”

    Well i also have the same issue which i solve by the following way. Its is an xml file put it on your drawable folder and set this xml into the background of that EditText

    activity code:

    EditText foo = (EditText)findViewById(R.id.editText);
    foo.setBackgroundResource(R.drawable.backtext);
    

    backtext.xml

    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
           <solid android:color="#ffffff" />
           <stroke android:width="1dip" android:color="#000000"/>
        </shape>
    

    create a edittext.xml file into drawable folder

    <?xml version="1.0" encoding="utf-8"?>
    <!--  res/drawable/rounded_edittext.xml -->
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#FFFFFF"/>
    <stroke
        android:width="1dp"
        android:color="@android:color/black" />
    <corners
     android:bottomRightRadius="15dp"
     android:bottomLeftRadius="15dp"
     android:topLeftRadius="15dp"
    android:topRightRadius="15dp"/>
    </shape>
    
    
    in your main.xml
    <EditText
    background="drawable/edittext.xml"
    />
    

    This Code is working for draw border to any view programmatically

    package com.example.border;
    
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.drawable.ShapeDrawable;
    
    public class ShapeDrawableWithoutBottom extends ShapeDrawable {
        private float mLineWidth = 1f;
        private final Paint mLinePaint;
        private int color;
    
        public ShapeDrawableWithoutBottom() {
    
            // No color specified, so call constructor with default color White
            this(Color.WHITE);
        }
    
        public ShapeDrawableWithoutBottom(int layoutColor) {
    
            // use the setter defined below, to set the main color for this drawable
            // setColor(color);
            setColor(layoutColor);
            // setup the Paint for drawing the lines
            mLinePaint = new Paint();
            mLinePaint.setStyle(Paint.Style.STROKE);
            mLinePaint.setStrokeWidth(mLineWidth);
        }
    
        public void setColor(int color) {
            Paint paint = getPaint();
            paint.setColor(color);
    
        }
    
        public void setLineColor(int color) {
            this.color = color;
        }
    
        public void setLineWidth(float lineWidth) {
            mLineWidth = lineWidth;
            mLinePaint.setStrokeWidth(mLineWidth);
        }
    
        @Override
        public void draw(Canvas canvas) {
            super.draw(canvas);
    
            // bottom black line
            // //////////////////
    
            mLinePaint.setColor(Color.parseColor("#00000000"));
            mLinePaint.setAlpha((int) (255 * 0.0)); // Opacity 90%
            canvas.drawLine(getBounds().left, getBounds().bottom - mLineWidth
                    * 0.5f, getBounds().right, getBounds().bottom - mLineWidth
                    * 0.5f, mLinePaint);
    
            // translucent grey rim
            // /////////////////////
    
            mLinePaint.setColor(color);
            mLinePaint.setAlpha((int) (255 * 0.7)); // Opacity 70%
    
            // top
            canvas.drawLine(getBounds().left, getBounds().top + mLineWidth * 0.5f,
                    getBounds().right, getBounds().top + mLineWidth * 0.5f,
                    mLinePaint);
    
            // left
            canvas.drawLine(getBounds().left + mLineWidth * 0.5f,
                    getBounds().bottom , getBounds().left + mLineWidth
                            * 0.5f, getBounds().top + mLineWidth, mLinePaint);
    
            // right
            canvas.drawLine(getBounds().right - mLineWidth * 0.5f,
                    getBounds().bottom , getBounds().right - mLineWidth
                            * 0.5f, getBounds().top + mLineWidth, mLinePaint);
    
            // top white line
            // ///////////////
    
            mLinePaint.setColor(Color.WHITE);
            mLinePaint.setAlpha((int) (255 * 0.5)); // Opacity 50%
            canvas.drawLine(getBounds().left + mLineWidth, getBounds().top
                    + mLineWidth * 1.5f, getBounds().right - mLineWidth,
                    getBounds().top + mLineWidth * 1.5f, mLinePaint);
        }
    }
    

    Try this in this i have dynamically added edittext then set its background and it works.

     LinearLayout layout=(LinearLayout)findViewById(R.id.layout);
                        EditText edit=new EditText(MainActivity.this);
                        edit.setBackgroundResource(R.drawable.abc);
                        edit.setMaxWidth(100);
                        edit.setMinHeight(100);
                        edit.setText("hello");
                        layout.addView(edit);
    

    Use

     editText.setBackground(getResources().getDrawable(R.drawable.edit_text_back));
    

    Instated of

    editText.setBackgroundResource(R.drawable.edit_text_back);
    

    This is you can make the border for the edit text. Save this into res/drawable

    <?xml version="1.0" encoding="utf-8"?>
        <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
            <item>
             <shape android:shape="rectangle">
             <gradient android:startColor="#f9f9f9"
                    android:centerColor="#ffffff"
                    android:endColor="#ffffff"
                    android:angle="90"/>
             <stroke  android:width="1dp" android:color="#2B547E"/>
            </shape>
             </item>
        </layer-list>
    
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.