如何在TabHost中显示softInput:EditText,其行为不稳定

时间:2012-01-04 09:47:17

标签: android focus android-edittext android-tabhost

我在tabhost中遇到自动对焦问题。当我打开该选项卡(使用该edittext)时,我需要显示softinput并将焦点放在editText中,更好地解释下一张图片:

enter image description here

在一个标签中我有这个布局。但是当我打开它时,editText没有获得焦点。当选项卡显示时,我已经完成了将editText打开程序,但它的行为不稳定,只运行了第二次或第三次。

我想要的是自动执行,就像在editText上安装android一样。我现在放了代码:

tab_header.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/AbsoluteLayout01"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:id="@+id/search_bar"
        android:layout_alignParentTop="true"
        android:background="#FF000000"
        android:layout_centerVertical="true"
        android:orientation="horizontal"
        android:paddingTop="6dip"
        android:paddingBottom="6dip"
        android:weightSum="4.0">
        <EditText android:id="@+id/search_field" 
            android:layout_height="45dip"
            android:maxHeight="45dip"
            android:layout_width="0dip"
            android:layout_weight="3.1"
            android:maxLines="1"
            android:lines="1"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:imeOptions="flagNoExtractUi"
            android:textSize="18dip"
            android:hint="@string/search_hint_text"
            android:textColorHint="@color/edit_text_hint_search"
            android:background="@drawable/et_search_field"
            android:textColor="@color/edit_text"
            android:layout_marginLeft="2dip"
            android:layout_marginRight="0dip"
            android:textColorHighlight="@color/edit_text_highlight" />
        <ImageButton android:text="Search" android:src="@drawable/ic_search_normal" android:id="@+id/search_button"
            android:layout_width="0dip"
            android:layout_height="45dip"
            android:layout_weight="0.9"
            android:scaleType="fitCenter"
            android:layout_alignTop="@+id/search_field"
            android:layout_alignBottom="@+id/search_field"
            android:background="@drawable/button_generic"
            android:layout_marginLeft="6dip"
            android:layout_marginRight="2dip"
            android:padding="10dip"/>
    </LinearLayout>
</RelativeLayout>

然后我把活动变成了一个活动组,但我认为它不是自动对焦的问题,基本上这就是我对该布局的处理方式:

public class SearchListActivity extends ListActivity implements OnScrollListener
{
    ...
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        ...
    View v = View.inflate(this, R.layout.tab_header, null); 
        getListView().addHeaderView(v);
        ...
    }
    ...
}

感谢阅读,我们将非常感激地阅读所有帮助。

1 个答案:

答案 0 :(得分:0)

在OnResume覆盖中添加以下内容:

EditText ET=(EditText) findViewById (R.id.search_field);
ET.requestfocus();
ET.SetText("Your soft input");