편집 텍스트를 한 줄로 제한


312

가능한 복제 : android-singleline-true-not-working-for-texttext

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:lines="1"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search...">
</EditText>

위의 내용 EditText을 한 줄로 만들고 싶습니다 . 사용자가 "입력"을하더라도 커서는 두 번째 줄로 내려 가지 않아야합니다. 아무도 나를 도울 수 있습니까?


60
사용android:singleLine=true
Praveenkumar

6
android : lines = "1"을로 바꿉니다 android:singleLine=true.
Mohammed Azharuddin Shaikh 2016 년

3
true는 따옴표로 묶어야합니다. "true"
deepwinter

8
singleLine은 더 이상 사용되지 않으므로 maxLines = 1 및 inputType = text를 사용할 수 있습니다.
sunlover3

4
를 사용 android:inputType="textVisiblePassword"하면 문제가 해결됩니다
Saad Mahmud

답변:


556

사용 android:maxLines="1"android:inputType="text"

android : maxLines 속성을 잊었습니다 . 그리고 android : inputType을 참조하십시오 . 아래 예제는 다음과 같습니다.

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:inputType="text"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search...">
</EditText>

17
현재 이클립스 IDE에서 Lukasz'Severiaan'Grela @ 더 중단 힌트는 표시되지 및 안드로이드된다 maxLines 한 줄에 입력을 제한하지 않습니다
MJN

10
singleline = true 사용
Dakshesh Khatri

2
@Praveen : android : singleLine 이 더 이상 사용되지 않는다는 참조를 제공 할 수 있습니까 ? API 23에 대해서는 볼 수 없습니다. 설명서에 언급되어 있지 않으며 23.0.1SDK 와 함께 사용할 때 경고가 표시되지 않습니다
Shobhit Puri

5
API 레벨 3부터 사용되지 않습니다. 참조 : developer.android.com/reference/android/R.attr.html#singleLine
Luis

3
android : maxLines = "1"만 사용하면 작동하지 않습니다. 따라서 android : inputType = "text"와 maxlines -1을 모두 사용해야합니다. 그러면 완벽하게 작동합니다
Hanuman

193

사용 android:singleLine="true"이 더 이상 사용 되지 않습니다.

입력 유형을 추가하고 maxline을 1로 설정하면 모든 것이 잘 작동합니다.

android:inputType="text"
android:maxLines="1"

80
inputType을 지정하지 않으면 작동하지 않습니다.
마이크로

10
당신의 권리. maxType을 1로 설정하더라도 inputType = "textMultiLine"은 여전히 ​​여러 줄을 표시합니다.
ralphgabb

2
참고이 android:inputType="number"이미 최대 1 개 라인이있다.
Micer

텍스트 뷰가 매우 길고 여러 줄을 원하지만 줄 바꿈 문자가 아닌 경우에는 작동하지 않습니다.
htafoya

@htafoya이 코드 스 니펫은 텍스트를 한 줄로 편집하는 데 사용됩니다. 그러나 여기 SO에서 새로운 질문을 시작할 수 있습니다.
ralphgabb

54

android:singleLine더 이상 사용되지 않습니다. 로부터 문서 :

이 상수는 API 레벨 3에서 사용되지 않습니다.

이 속성은 더 이상 사용되지 않습니다. 사용 maxLines정적 텍스트의 레이아웃을 변경하고 사용하는 대신 textMultiLine편집 가능한 텍스트 뷰 대신 inputType 속성 (만일 Singleline 및 inputType 모두 제공되는 경우 inputType 플래그는 만일 Singleline의 값을 무시합니다)에 플래그를.

따라서 android:inputType="textEmailSubject"필드의 내용과 일치하는 값이나 다른 값을 설정할 수 있습니다 .


29
간단한 줄 텍스트 필드를 원하면을 사용하십시오 android:inputType="text".
PhoneixS

감사합니다 @Mr. 번글, textMultiLine이 나를 위해 일했습니다!
user1510006

18

xml의 ​​EditText에이 줄을 추가해야합니다.

android:maxLines="1"

3
다른 답변에서 알 수 있듯이-이것은 찬성 maxLines하고 inputType조합 하여 더 이상 사용되지 않습니다.
Janis Peisenieks

16
android:maxLines="1"
android:inputType="text"

위 코드를 추가하여 레이아웃의 EditText 태그에 한 줄로 표시하십시오.

android:singleLine="true" is deprecated

이 상수는 API 레벨 3 에서 더 이상 사용되지 않습니다 .

이 속성은 더 이상 사용되지 않습니다. 정적 텍스트의 레이아웃을 변경하려면 maxLines를 사용하고 편집 가능한 텍스트보기 대신 inputType 속성에 textMultiLine 플래그를 사용하십시오 (singleLine 및 inputType이 모두 제공되는 경우 inputType 플래그가 singleLine의 값을 대체 함).


13

이제 android:singleLine속성이 더 이상 사용되지 않습니다. 당신의 이러한 속성을 추가하십시오 EditText을 위해 EditText할 수있는 한 줄.

android:inputType="text"
android:imeOptions="actionNext"
android:maxLines="1"

11

나는 과거에 이것을 android:singleLine="true"하고 "enter"키를위한 리스너를 추가했다 :

((EditText)this.findViewById(R.id.mytext)).setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            //if the enter key was pressed, then hide the keyboard and do whatever needs doing.
            InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(getApplicationWindowToken(), 0);

            //do what you need on your enter key press here

            return true;
        }

        return false;
    }
});

11

이것은 EditText에서 작동합니다.

android:inputType="text"

그런 다음 입력 텍스트의 최대 길이를 설정합니다.

android:maxLines="1"

그것들은 지금 필요한 2입니다.



5

한 사람이 EditText의 setMaxLines 메서드를 호출하는 것을 제외하고는 모두 XML 방식을 보여줍니다. 그러나 내가 그렇게했을 때 효과가 없었습니다. 나를 위해 일한 한 가지는 입력 유형을 설정하는 것이 었습니다.

EditText editText = new EditText(this);
editText.setInputType(InputType.TYPE_CLASS_TEXT);

이것은 AZ, az, 0-9 및 특수 문자를 허용하지만 enter를 누를 수는 없습니다. Enter 키를 누르면 응용 프로그램에 해당되는 경우 다음 GUI 구성 요소로 이동합니다.

해당 EditText에 넣을 수있는 최대 문자 수를 설정하거나 화면 오른쪽에있는 것을 밀어 내거나 화면 자체에서 시작합니다. 다음과 같이 할 수 있습니다 :

InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(8);
editText.setFilters(filters);

해당 EditText에서 최대 문자를 8로 설정합니다. 이 모든 것이 당신에게 도움이되기를 바랍니다.





1

@Aleks G OnKeyListener ()는 실제로 잘 작동하지만 MainActivity에서 실행했기 때문에 약간 수정해야했습니다.

EditText searchBox = (EditText) findViewById(R.id.searchbox);
searchBox.setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            //if the enter key was pressed, then hide the keyboard and do whatever needs doing.
            InputMethodManager imm = (InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(searchBox.getApplicationWindowToken(), 0);

            //do what you need on your enter key press here

            return true;
        }

        return false;
    }
});

나는 이것이 똑같은 일을하는 데 도움이되기를 바랍니다.


1

제한하려면 "true"에 한 줄 옵션 만 설정하면됩니다.

android:singleLine="true"

3
singleLine은 더 이상 사용되지 않습니다!
Jamshaid Kamran

1

또한 android : inputType 속성이 textMultiLine 인 경우주의를 기울여야합니다 . 그렇다면 android : singleLine, android : imeOptions, android : ellipsize 및 android maxLines 속성이 무시되고 EditText는 어쨌든 MultiLine을 허용합니다.



1

마찬가지로 android:singleLine="true"지금 상각 사용하므로

android : maxLines = "1"

정적 텍스트의 레이아웃을 변경하려면 maxLines를 사용하고 편집 가능한 텍스트보기 대신 inputType 속성에 textMultiLine 플래그를 사용하십시오 (singleLine 및 inputType이 모두 제공되는 경우 inputType 플래그가 singleLine의 값을 대체 함).


1

코드 대신 아래 코드 사용

<EditText 
    android:id="@+id/searchbox"  
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:maxLines="1"
    android:inputType="text"
    android:scrollHorizontally="true"
    android:ellipsize="end"
    android:layout_weight="1"
    android:layout_marginTop="2dp"
    android:drawablePadding="10dp"
    android:background="@drawable/edittext"
    android:drawableLeft="@drawable/folder_full"
    android:drawableRight="@drawable/search"
    android:paddingLeft="15dp"
    android:hint="search..."/>

0

XML 파일에서 텍스트 편집에서이 속성을 추가하십시오.

 android:maxLines="1"


0

이 줄을 EditText에 추가해야합니다

android:maxLines="1"

그리고 또 하나, 세트를 잊지 마십시오 android:inputType(원하는 텍스트, 전화 ..,하지만 설정해야 함)


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.