如何保持文本而不更改Android中的Spinner选择?

时间:2012-09-21 13:44:50

标签: android drop-down-menu android-listview android-spinner

我想在android中实现标签“CATEGORY”的下拉列表。

在这里,当我点击“CATEGORY”按钮时,应该填充一个列表。但是,当我选择该列表中的任何项目时,我不想更改标签“CATEGORY”。

怎么做?

2 个答案:

答案 0 :(得分:1)

一旦了解了微调器的工作原理,就会变得容易。 :)

微调器使用getView方法填充闭合的微调器,使用getDropDownView方法创建下拉列表。使用此信息,您可以创建一个自定义适配器,该适配器可以在关闭视图中显示除当前选择之外的其他内容。这也可以避免在数据中使用非数据(如“CATEGORY”一词)。

一个简单的例子:

public class CustomAdapter extends ArrayAdapter { 
    private Context context; 
    private int textViewResourceId; 
    private String[] objects; 

    public CustomAdapter(Context context, int textViewResourceId, 
            String[] objects) { 
        super(context, textViewResourceId, objects); 
        this.context = context; 
        this.textViewResourceId = textViewResourceId; 
        this.objects = objects; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
        if (convertView == null) 
            convertView = View.inflate(context, textViewResourceId, null); 
            TextView tv = (TextView) convertView; 
            tv.setText("CATEGORY"); 
        } 
        return convertView; 
    } 
} 

旋转器的其余部分将正常运行,因此您可以捕获onItemSelectedListener中的选择。

答案 1 :(得分:0)

OnItemSelectedListener方法中,获取您选择的值并将其存储在共享首选项的位置,并使用spinnersetSelection(0);重置位置:)如果再次单击微调器,则从共享首选项中加载值:)