Cara menampilkan softInput : EditText di TabHost dengan perilaku tidak menentu

saya mengalami beberapa masalah dengan fokus otomatis di tabhost. Saya perlu menampilkan softinput dan fokus di editText ketika saya membuka tab itu (dengan edittext itu), lebih baik dijelaskan dengan gambar berikutnya:

masukkan deskripsi gambar di sini

Dalam satu tab saya memiliki tata letak itu. Tetapi ketika saya membukanya, editText tidak mendapatkan fokus. Saya telah melakukannya dengan buruk membuka program editText ketika tab muncul, tetapi perilakunya tidak menentu dan hanya berjalan kedua atau ketiga kali.

Yang saya inginkan adalah melakukannya secara otomatis, seperti yang sering terjadi pada Android di editText. Saya memasukkan kode sekarang:

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>

Lalu saya memasukkan aktivitas tersebut ke dalam grup aktivitas, tetapi menurut saya itu tidak akan menjadi masalah untuk fokus otomatis, pada dasarnya inilah yang saya lakukan dengan tata letak itu:

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);
        ...
    }
    ...
}

Terima kasih telah membaca, semua bantuan akan dibaca dengan penuh syukur.


person A.Quiroga    schedule 04.01.2012    source sumber


Jawaban (1)


Tambahkan yang berikut ini di penggantian OnResume:

EditText ET=(EditText) findViewById (R.id.search_field);
ET.requestfocus();
ET.SetText("Your soft input");
person Mohamed_AbdAllah    schedule 04.01.2012
comment
onResume menyala , tetapi input lunak tidak berjalan dengan itu , begitu pula dengan ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(search_field,0); - person A.Quiroga; 04.01.2012