【问题标题】:spinner doesn't select item微调器不选择项目
【发布时间】:2013-11-07 14:19:09
【问题描述】:

我无法在微调器中选择项目。当我单击微调器中的项目时,Logcat 显示警告

W/InputManagerService(60):窗口已经聚焦,忽略焦点增益 来自:com.android.internal.view.IInputMethodClient$Stub$Proxy@406f3d90

代码示例

package com.example.myspinner;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.ViewGroup;
import android.widget.Spinner;
import android.widget.ArrayAdapter;

public class MainActivity extends Activity {

    private static class RootGroup extends ViewGroup {

        Spinner spinner;

        public RootGroup(Context context) {
            super(context);

            spinner = new Spinner(context);
            addView(spinner);

            String[] objects = {"Item 1", "Item 2", "Item 3", "Item 4"};
            ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(context, android.R.layout.simple_spinner_item, objects);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
        }

        @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            if (changed) {
                int height = b - t; 
                int width = r - l;
                int widthSpec = MeasureSpec.makeMeasureSpec(r - l, MeasureSpec.EXACTLY);
                int heightSpec = MeasureSpec.makeMeasureSpec(height / 8, MeasureSpec.EXACTLY);
                spinner.measure(widthSpec, heightSpec);
                spinner.layout(0, 0, width / 2, height / 4);                
            }
        }
    }    


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final ViewGroup rootGroup = new RootGroup(MainActivity.this);
        setContentView(rootGroup);
    }
}

你能帮帮我吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    我没有看到您在代码中为微调器设置侦听器:

                spinner
                        .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                            public void onItemSelected(AdapterView<?> arg0,
                                    View v, int position, long id) {
    
    
                            }
    
                            public void onNothingSelected(AdapterView<?> arg0) {
    
                            }
                        });
    

    【讨论】:

    • 您发布问题的方式也无济于事。你的问题到底是什么,“我无法选择项目”是什么意思?
    • 如果您有时间,您可以编译代码并查看微调器的行为。单击任何项​​目时,微调器文本不会更改。示例我点击“项目 2”但没有任何反应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多