Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义微调器:向下滚动_Java_Android - Fatal编程技术网

Java 自定义微调器:向下滚动

Java 自定义微调器:向下滚动,java,android,Java,Android,我有一个定制的微调器 我在数组(微调器)的最后一个位置有一个提示标签,因此为了显示它,我将选择设置为最后一个位置,如下所示: ArrayAdapter myAdapter = new MySpinnerAdapter(this,R.layout.spinner_item,createMyList()); myAdapter.setDropDownViewResource(spinner_item); mySpinner.setAdapter(subCategoryAdapter); mySpi

我有一个定制的微调器 我在数组(微调器)的最后一个位置有一个提示标签,因此为了显示它,我将选择设置为最后一个位置,如下所示:

ArrayAdapter myAdapter = new MySpinnerAdapter(this,R.layout.spinner_item,createMyList());
myAdapter.setDropDownViewResource(spinner_item);
mySpinner.setAdapter(subCategoryAdapter);
 mySpinner.setSelection(myList.size() - 1);
它工作得很好,但当我触摸微调器选择一个项目时,滚动条会“聚焦”微调器的底部,因为我的选择

如何将注意力集中在微调器的第一项或“滚动”到其顶部


谢谢

您可以通过扩展
微调器
和覆盖负责设置的方法并在下拉列表中显示值列表来实现这一点:

public class CustomSpinner extends Spinner {

    private boolean mToggleFlag = true;

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

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

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

    public CustomSpinner(Context context, int mode) {
        super(context, mode);
    }

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

    @Override
    public int getSelectedItemPosition() {
        if (!mToggleFlag) {
            return 0; // Gets to the first element
        }
        return super.getSelectedItemPosition();
    }

    @Override
    public boolean performClick() {
        mToggleFlag = false;
        boolean result = super.performClick();
        mToggleFlag = true;
        return result;
    }

}

谢谢你的回答!一个很难回答的问题,我如何将findViewById方法强制转换到我的自定义微调器(类)?我忘了更改XML以使用我的自定义微调器:)Thaksin我的案例
performClicked
从未被调用。为什么会这样?@masterwok您应该打开一个单独的线程,因为这是用于滚动的down@GingerHead我使用这个实现来解决向下滚动问题。但是,这个解决方案对我不起作用,因为从未调用
performClick
方法。不过,我最终选择了一个不同的解决方案。