Android基礎(chǔ):EditText不換行的問題

一個入門級的問題:如何讓EditText只顯示一行,無法使用軟鍵盤的回車鍵換行?

EditText的xml布局文件里面有很多有關(guān)于行數(shù)的屬性:

 <EditText
   android:id="@+id/editText"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_margin="@dimen/marginNormal"
   android:background="@color/white"
   android:ellipsize="end"
   android:imeOptions="actionSearch"
   android:gravity="start|center_vertical"
   android:maxLines="1"
   android:lines="1"/>

除了已經(jīng)過時的singleLines屬性,現(xiàn)在還有maxLines和Lines屬性可以設(shè)置。

然而你會發(fā)現(xiàn),即使同時設(shè)置了maxLines=”1”和lines=”1”,你的EditText依然是可以換行的。

加上一條屬性:

android:inputType="text"

也還是不行。

嘗試使用AutoCompleteTextView替換EditText

<AutoCompleteTextView
     android:id="@+id/sogou_et_lysearch"
     android:layout_width="0dp"
     android:layout_height="40dp"
     android:layout_weight="9"
     android:layout_centerVertical="true"
     android:background="@null"
     android:completionThreshold="1"
     android:gravity="center_vertical"
     android:paddingLeft="10sp"
     android:cursorVisible="true"
     android:textCursorDrawable="@drawable/et_search_cursorcolor"
     android:imeOptions="actionSearch"
     android:singleLine="true"
     />

其關(guān)鍵作用的是android:imeOptions="actionSearch",軟鍵盤的回車鍵被替換成搜索圖樣的按鈕
然后添加搜索按鈕的監(jiān)聽,不然點擊軟件會崩潰,如下

 D/AndroidRuntime: Shutting down VM
 E/CrashHandler: In thread: Thread[main,5,main]
      UncaughtException detected: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.KeyEvent.getKeyCode()' on a null object reference
          at com.bxd.filesearch.module.search.SearchNetActivity$8.onEditorAction(SearchNetActivity.java:329)
          at android.widget.TextView.onEditorAction(TextView.java:4637)
          at com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:146)
          at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:304)
          at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
          at android.os.Handler.dispatchMessage(Handler.java:111)
          at android.os.Looper.loop(Looper.java:194)
          at android.app.ActivityThread.main(ActivityThread.java:5667)
          at java.lang.reflect.Method.invoke(Native Method)
          at java.lang.reflect.Method.invoke(Method.java:372)
          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:962)
          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

添加搜索按鈕的監(jiān)聽,正常工作


 footer_edit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == KeyEvent.KEYCODE_ENTER) {
                    return true;
                } else if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                     //這是監(jiān)聽搜索按鈕
                    secondSearch();
                }
                return false;
            }
        });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容