Android中微调器中的项目选择

时间:2014-06-23 08:57:28

标签: android user-interface spinner adapter

我有微调器,默认文本。数组中没有默认文本,用于显示微调器项。为此我正在使用自定义数组适配器。

例如我显示默认文本是14:13,但在我的数组中,文本是14:15。我想为这个项目做setSelection(14:15)。我能为此做些什么?

public class CustomSpinnerAdapter extends ArrayAdapter<String>{

            Context context;
            String[] objects;
            String firstElement;
            boolean isFirstTime;

            public CustomSpinnerAdapter(Context context, int textViewResourceId, String[] objects, String defaultText) {
                super(context, textViewResourceId, objects);
                this.context = context;
                this.objects = objects;
                this.isFirstTime = true;
                setDefaultText(defaultText);
            }

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

                if(isFirstTime) {
                    objects[0] = firstElement;
                    isFirstTime = false;
                }
//              ((TextView) convertView).setGravity(Gravity.CENTER_VERTICAL);
                return getCustomView(position, convertView, parent);
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) { 
                notifyDataSetChanged();
                return getCustomView(position, convertView, parent);
            }

            public void setDefaultText(String defaultText) {
                this.firstElement = objects[0];
                objects[0] = defaultText;
            }

            public View getCustomView(int position, View convertView, ViewGroup parent) {

                LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View row = inflater.inflate(R.layout.time_item, parent, false);
                TextView label = (TextView) row.findViewById(R.id.txt_time);
                label.setText(objects[position]);
                return row;
            }


            }

spinner image

下图说明了具体要求。如果你可以在我们开始行动时首先观察到旋转器显示默认文本“10:39”,但在旋转器arraylist中我们的值为10:37和10:50。所以我想把它显示为附近的值。

现在我显示默认值,当我们点击它弹出时,微调器值完美运行。但我想要的是当我点击微调器时它会自动滚动到10:37并显示它将被选中。

1 个答案:

答案 0 :(得分:1)

您可以将此代码用于微调器适配器。

Spinner spinner = (Spinner) findViewById(R.id.your_spinner);
ArrayAdapter adapter = new ArrayAdapter(YourActivity.this, R.layout.spinner_item, array_spinner);
//array_spinner is your array to displayed on spinner selection

spinner.setAdapter(adapter);
spinner.setPrompt("Choosed item");
spinner.setSelection(int position); //position of item in your array_spinner

我希望这会有所帮助。