将焦点添加到微调器

时间:2011-08-30 10:16:05

标签: android spinner

这里我有一个微调器和微调器下面的一些文本字段。当其中一个文本字段具有焦点时,我从微调器中选择一个项目,我看到焦点仍然在该文本字段上,现在我想要做的是,在选择的微调器项目上,我想将焦点从该文本字段更改为微调。 有没有办法将焦点设置为微调器?比如,

    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
            int position, long id) {
        //set focus to the spinner 
            }
        }

2 个答案:

答案 0 :(得分:7)

我遇到了类似的问题并找到了部分答案here

但是,我还必须从我的代码而不是XML文件中设置focusable(true)和focusableInTouchMode(true)。在我在代码中设置可聚焦属性之前,我无法使其工作。以下是我的项目中的示例:

spinUoM.setFocusable(true);
spinUoM.setFocusableInTouchMode(true);

spinUoM.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus)
                DialogDefineRecipeActivity.this.spinUoM.performClick();
        }

    });

答案 1 :(得分:5)

在我的案例中工作

    @Override
     public void onItemSelected(final AdapterView<?> parent, View view,
            final int position, long id) {

        parent.post(new Runnable() {
            @Override
            public void run() {
                spinner.requestFocusFromTouch();
            }
        });
    }