2013/08/14
Android の AutoCompleteTextView で文字と背景が白くなってしまう
たとえば、以下のコードを実行すると、
AutoCompleteTextView mAutoCompleteTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAutoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
String[] list = new String[] {
"alpha",
"bravo",
"charlie",
"delta",
"echo"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_dropdown_item_1line,
list);
mAutoCompleteTextView.setAdapter(adapter);
mAutoCompleteTextView.setThreshold(1);
mAutoCompleteTextView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mAutoCompleteTextView.showDropDown();
}
}
});
}
以下のようになります。
ちゃんと候補は登録されていますので、タップすれば入力可能です。
文字色が白、かつバックグラウンドが白なため、候補が見えなくなっちゃってるんですね。
これ、バグというより、デザインが統一されていないために起きた不具合と言えそうです。
というわけで、以下のように ArrayAdapter のコンストラクタに与える引数を android.R.layout.select_dialog_item に変えるとうまくいきます。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
android.R.layout.select_dialog_item,
list);

0 件のコメント:
コメントを投稿