是否有可能在Android中设置提示微调器

2022-08-31 17:22:13

是否无论如何都要为微调器提供类似于为编辑文本字段提供的提示的提示。我知道您可以使用提示,为您提供标题栏,但仍将初始微调器字段留空,直到您单击微调器。我目前有一种粗略的方法,将虚拟字段设置为微调器数组的第一部分,这是问题,然后在末尾进行检查以确保微调器不等于问题字符串。有没有更干净/更好的方法来做到这一点?

谢谢!


答案 1

这里有一个可能比Ravi Vyas代码简单一点的解决方案(感谢您的启发!

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item) {

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View v = super.getView(position, convertView, parent);
        if (position == getCount()) {
            ((TextView)v.findViewById(android.R.id.text1)).setText("");
            ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
        }

        return v;
    }       

    @Override
    public int getCount() {
        return super.getCount()-1; // you dont display last item. It is used as hint.
    }

};

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("Item 1");
adapter.add("Item 2");
adapter.add("Hint to be displayed");

spinner.setAdapter(adapter);
spinner.setSelection(adapter.getCount()); //display hint

答案 2

您可以设置自己的微调器适配器并覆盖 getView 方法以显示提示而不是项目。我已经在github上创建了一个示例项目,在这里查看


推荐