简体   繁体   English

水平线多行Edittext

[英]Multiline Edittext with Horizontal Lines

I am making a Assignment don't know how to add a multilines edittext follow this one Tutorial but don't know how to implement it in MainActivity class 我正在做一个分配,不知道如何按照此教程添加多行edittext,但是不知道如何在MainActivity类中实现它

Drawing multiple lines in edittext eg notepad 在edittext中绘制多条线,例如记事本

i am using following class 我正在使用以下课程

public class LinedEditText extends EditText {

    private Rect mRect;
    private Paint mPaint;

    // we need this constructor for LayoutInflater
    public LinedEditText(Context context, AttributeSet attrs) {
        super(context, attrs);

        mRect = new Rect();
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
      //  mPaint.setColor(getResources().getColor()); //SET YOUR OWN COLOR HERE
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //int count = getLineCount();

        int height = getHeight();
        int line_height = getLineHeight();

        int count = height / line_height;

        if (getLineCount() > count)
            count = getLineCount();//for long text with scrolling

        Rect r = mRect;
        Paint paint = mPaint;
        int baseline = getLineBounds(0, r);//first line

        for (int i = 0; i < count; i++) {

            canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
            baseline += getLineHeight();//next line
        }

        super.onDraw(canvas);
    }

}

and i have following xml view wanted to inflat them via this class 我有以下XML视图想要通过此类来膨胀它们

activity_main.xml activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

</LinearLayout>

multilinedittext.xml multilinedittext.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/multiline_exdittext_layout"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/edittxt_multilines"
        />

</LinearLayout>

try this 尝试这个

 <EditText
    android:inputType="textMultiLine" 
    android:lines="8"
    android:minLines="6" 
    android:gravity="top|left" 
    android:maxLines="10" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:scrollbars="vertical"
/>

Change your xml to this 将您的xml更改为此

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/multiline_exdittext_layout"
    android:layout_width="match_parent"  
    android:layout_height="match_parent">

<your.packagename.LinedEditText
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:inputType="textMultiLine"
    android:ems="10"
    android:id="@+id/edittxt_multilines"
    />

</LinearLayout>

Whats your mistake 你怎么了

Your custom class is public class LinedEditText extends EditText 您的自定义类是public class LinedEditText extends EditText

  1. Did you call this in your XML 您是否在XML中调用了此方法

Just Change your EditText Xml 只需更改您的EditText Xml

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/multiline_exdittext_layout"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <YOUR_PACKAGE_NAME.LinedEditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textMultiLine"
        android:ems="10"
        android:id="@+id/edittxt_multilines"
        />

</LinearLayout>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM