Как добавить подсказку в счетчике

XML-код счетчика:

<Spinner
    android:id = "@+id/mySpinner"
    https://stackoverflow.com/questions       
    style = "@style/Widget.AppCompat.DropDownItem.Spinner"
    android:layout_width = "match_parent"
    android:layout_height = "70dp" />`

.kotlin:

val myStrings = arrayOf("One", "Two" , "Three", "Four")
mySpinner.adapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, myStrings)
mySpinner.onItemSelectedListener = object : 
AdapterView.OnItemSelectedListener {
    override fun onNothingSelected(parent: AdapterView<*>?) {
        TODO("not implemented") 
        //To change body of created functions use File | Settings | File Templates.
    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
        TODO("not implemented") 
        //To change body of created functions use File | Settings | File Templates.
    }
}}

Как и опция «подсказка» в Edittext, мне нужен текст по умолчанию в Spinner.

В Spinner нет возможности подсказки. Вы можете сделать свой первый элемент подсказкой, например «Выбрать» или как угодно. Другой вариант, который вам нужен для настройки Spinner.

ADM 27.03.2018 11:01

Вы рассматривали возможность использования android:prompt?

ColdFire 27.03.2018 11:47
6
2
11 573
2

Ответы 2

По умолчанию нет способа отображать подсказку в счетчике. Для этого вам нужно вручную добавить один элемент в массив, как показано ниже.

val myStrings = arrayOf("Select","One", "Two" , "Three", "Four")

Сейчас, Определите пользовательский адаптер для счетчика и отключите первый элемент, как показано ниже.

@Override
public boolean isEnabled(int position) {
    if (position == 0) {
        // Disable the first item from Spinner
        // First item will be use for hint
        return false;
    } else {
        return true;
    }
}

Вы можете изменить цвет, как показано ниже

@Override
public View getDropDownView(int position, View convertView,
                                    ViewGroup parent) {
    View view = super.getDropDownView(position, convertView, parent);
    TextView tv = (TextView) view;
    if (position == 0) {
        // Set the hint text color gray
        tv.setTextColor(Color.GRAY);
    } else {
        tv.setTextColor(Color.BLACK);
    }
    return view;
}

Для получения дополнительной информации посетите: -

Добавить подсказку в счетчике

используется ниже код для установки значения подсказки элемента управления счетчиком.

 class SpinerActivity :AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.spiner)
        setSpinner()
    }

    private fun setSpinner() {
        val mySpinner:Spinner=findViewById(R.id.mySpinner)
        val myStrings = arrayOf("Select Item","One", "Two" , "Three", "Four")
        var adapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, myStrings)
        mySpinner.adapter=adapter
        mySpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            override fun onNothingSelected(parent: AdapterView<*>?) {
            }

            override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
            }
        }

    }
}

Другие вопросы по теме