【问题标题】:Android Spinner setOnItemSelectedListenerAndroid Spinner setOnItemSelectedListener
【发布时间】:2019-10-24 16:44:42
【问题描述】:

选择同一个位置时有没有办法执行?

例如,如果当前选择了 0,再次选择 0 将导致相同的事件再次发生。

【问题讨论】:

  • 看看this
  • 试试this。通过使用,您可以选择已选择的项目。
  • @HemantParmar 如何将它应用到我创建的微调器?
  • @RajatMehra 如何将其应用于我创建的微调器?

标签: android spinner


【解决方案1】:

创建一个扩展 Spinner 的自定义类并将其替换为您的 Spinner

public class NDSpinner extends Spinner {

    public NDSpinner(Context context) {
        super(context);
    }

    public NDSpinner(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public NDSpinner(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void
    setSelection(int position, boolean animate) {
        boolean sameSelected = position == getSelectedItemPosition();
        super.setSelection(position, animate);
        if (sameSelected) {
            // Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now
            getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId());
        }
    }

    @Override
    public void
    setSelection(int position) {
        boolean sameSelected = position == getSelectedItemPosition();
        super.setSelection(position);
        if (sameSelected) {
            // Spinner does not call the OnItemSelectedListener if the same item is selected, so do it manually now
            getOnItemSelectedListener().onItemSelected(this, getSelectedView(), position, getSelectedItemId());
        }
    }
}

【讨论】:

  • 我用这段代码定义了一个扩展类。您如何将其应用到您现有的 Spinner?
  • 在您现有的 xml 和代码中将 Spinner 替换为 NDSpinner
猜你喜欢
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2014-09-13
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多