繼承 ArrayAdapter 並覆寫 getDropDownView(),找到內建 TextView(android.R.id.text1)設定文字顏色,解決特定機型(如 Droid X)下拉選單字體不可見問題。
static class CustomArrayAdapter extends ArrayAdapter {
public CustomArrayAdapter(Context ctx, T[] objects) {
super(ctx, android.R.layout.simple_spinner_item, objects);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
TextView text = view.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK); // 或 Color.RED 等
return view;
}
}
String[] items = getResources().getStringArray(R.array.planets);
CustomArrayAdapter adapter = new CustomArrayAdapter<>(this, items);
spinner.setAdapter(adapter);
simple_spinner_item 內建 TextView ID 為 android.R.id.text1。getDropDownView 僅影響下拉清單項目外觀,不影響主視圖。