一個入門級的問題:如何讓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;
}
});