[android] edittext를 한 줄로 제한


Answers

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

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

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

가능한 중복 : android-singleline-true-not-working-for-edittext

<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 를 단 한 줄로 만들고 싶습니다. 사용자가 "엔터"를 눌러도 커서는 두 번째 줄로 내려 가지 않아야합니다. 아무도 내가 그 일을하도록 도울 수 있습니까?




edittext에이 줄을 추가하십시오.

android : inputType = "text"




android:imeOptions="actionDone"

나를 위해 일했다.




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

android:maxLines="1"



as android:singleLine="true" 는 이제 developer.android.com/reference/android/R.attr.html#singleLine 됩니다.

android : maxLines = "1"

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




이제 android:singleLine 속성은 더 이상 사용되지 않습니다. 이러한 속성을 EditText 에 추가하여 EditText 가 단일 행이되도록하십시오.

android:inputType="text"
android:imeOptions="actionNext"
android:maxLines="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;
    }
});

나는 이것이 동일한 것을하는 것을 시도해 누군가를 원한다는 것을 희망한다.




용도

android:ellipsize="end"
android:maxLines="1"



한 사람이 EditText의 setMaxLines 메소드를 호출하는 것을 제외하고 모든 사람들이 XML 방식을 보여줍니다. 그러나, 내가 그것을했을 때, 그것은 작동하지 않았다. 나를 위해 일한 한 가지는 입력 유형을 설정하는 것이 었습니다.

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

이것은 AZ, az, 0-9 및 특수 문자를 허용하지만 입력을 허용하지 않습니다. Enter 키를 누르면 응용 프로그램에서 적용 가능한 경우 다음 GUI 구성 요소로 이동합니다.

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

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

그러면 EditText에서 최대 문자 수를 8로 설정합니다. 이 모든 것이 당신을 돕길 바랍니다.




android:singleLine="true" 포함 android:singleLine="true"




Links