eT = (EditText) findViewById(R.id.searchAutoCompleteTextView_feed);
eT.setFocusable(false);
eT.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.d("Cliked on edit text", "eT.onClick");
eT.setFocusable(true);
}
});
我写了这段代码,期待焦点不在editText上,因为它会弹出我不想要的屏幕键盘。虽然工作正常,但是当我点击editText时,我希望它被聚焦,以便现在键盘弹出....但这不起作用,当我点击editText时它什么也没有提供
答案 0 :(得分:4)
您必须在EditText上方创建一个视图,该视图采用“虚假”焦点:
类似的东西:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Stop auto focussing the EditText -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/transparent"
android:focusable="true"
android:focusableInTouchMode="true">
</LinearLayout>
<EditText
android:id="@+id/searchAutoCompleteTextView_feed"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:inputType="text" />
</LinearLayout>
在这种情况下,我使用LinearLayout来请求焦点。 希望这会有所帮助。
答案 1 :(得分:4)
更好的答案是:
eT.setFocusableInTouchMode(true);
eT.setFocusable(true);
并且你不必创造假的&#39;对焦。