我想实现微调器的弹出窗口效果

时间:2014-01-18 09:15:19

标签: android

我试图更改android微调器弹出窗口。有什么方法可以改变它吗? 我的微调器对象像

Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);

2 个答案:

答案 0 :(得分:0)

您必须编写一个扩展ArrayAdapter的自定义适配器类。该适配器具有getView()方法,您可以为微调器中的每个项目扩展自己的布局,从而更改微调器下拉项的外观。 看看this问题。

答案 1 :(得分:0)

这是一个简单的例子:

data = new ArrayList<HashMap<String, String>>(); 
spinner = (Spinner) findViewById(R.id.languagespinner);

String[] languages = { "English", "French", "Swahili", "Russian",
        "Bahasa" };
int[] flags = { R.drawable.us, R.drawable.france, R.drawable.sa,
        R.drawable.russia, R.drawable.timor_leste };
for(int i = 0; i < languages.length; i++){
    HashMap<String, Object> dummy = new HashMap<String, Object>();

    dummy.put("lang", languages[i]);
    dummy.put("flag", flags[i]);

    data.add(dummy);
}

String from[] = {"lang", "flag"};
int to[] = {R.id.lang, R.id.flag};

SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.customspinner, from, to);
spinner.setAdapter(adapter);

我的自定义布局包含语言的标志和文本。如果您想提供更加个性化的外观和感觉,我建议您使用自定义适配器。 This就是一个很好的例子。