在我的editText搜索视图中显示光标

时间:2014-04-01 12:31:01

标签: java android focus

我有以下xml:

<LinearLayout
    android:id="@+id/searchBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/theTitleBar"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/searchBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="6dp"
        android:layout_marginLeft="7dp"
        android:layout_marginRight="1dp"
        android:layout_marginTop="8dp"
        android:layout_weight="1"
        android:background="@drawable/text_area_search"
        android:imeOptions="actionSearch"
        android:textSize="14dp" >
        <requestFocus />
        </EditText>

    <ImageButton
        android:id="@+id/speechRecognition"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:layout_marginRight="7dp"
        android:layout_weight="0"
        android:background="@drawable/recording_bt_crop_idle"
        android:onClick="speechRecognitionClicked"
        android:visibility="visible" />
</LinearLayout>

当活动开启时,软键盘会打开。

如何强制文本光标出现并闪烁?

现在,即使用户点击此editText,它也不会出现。

我添加了<requestFocus />,但它没有帮助

这是我的代码:

@Override
public void onResume() {
    super.onResume();
    if (type==AddressItem.FAVORITE_ITEM_EMPTY) {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                searchBox.requestFocus();
                InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.showSoftInput(searchBox, InputMethodManager.SHOW_FORCED);
            }
        }, 100);
    }
}

3 个答案:

答案 0 :(得分:0)

您可以尝试,要在editText中显示光标,只需使用

android:textCursorDrawable="@null"
android:textColor="@color/someColor"

PS:颜色是可选的,但是如果你想改变光标的颜色你可以改变颜色。

答案 1 :(得分:0)

        android:textCursorDrawable="@drawable/my_cursor"

答案 2 :(得分:-1)

尝试    searchBox.setSelection(0);