【问题标题】:display spinner2 if item xy in spinner1 is selected not working correctly如果选择了 spinner1 中的项目 xy,则显示 spinner2 无法正常工作
【发布时间】:2011-04-20 07:21:04
【问题描述】:

我有两个旋转器。

如果在第一个项目中选择了“柴油”项目,我想显示第二个。

sKraftstoffArt.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
            if(sKraftstoffArt.getSelectedItem().toString() == "Diesel"){
                sPartikelfilterArt.setVisibility(sPartikelfilterArt.VISIBLE);
            }
        } 

        public void onNothingSelected(AdapterView<?> adapterView) {
            return;
        } 
    }); 

我已经在 onCreate 方法中实现了这段代码。当我在运行时选择一个项目时,我没有得到所选项目的文本......它仅在创建活动并选择默认值时才有效......

我还需要在哪里实现它?

问候, 浮动

【问题讨论】:

    标签: android spinner


    【解决方案1】:

    除非您的 sKraftstoffArt 对象不是最终对象,否则在匿名类中对其选定项文本的检查将不起作用。

    参数中的adapterView 是您分配了AdapterView.OnItemClickListenerListView 实例。
    view 参数是您的ListView 中被点击的实际项目(渲染器)。此项由适配器的getView(int position, View convertView, ViewGroup parent) 方法提供。

    另外,你应该使用Stringequals方法来检查两个String值是否相等。

    所以这行不通:

    if(sKraftstoffArt.getSelectedItem().toString() == "Diesel")
    

    使用插页

    if (adapterView.getSelectedItem().toString().equals("Diesel"))
    

    您可能还想在此if 之后添加一个else 子句,以在前一个微调器中的选定项目不是“柴油”时隐藏sPartikelfilterArt 微调器。

    请注意,每次您将新适配器分配到此列表时(可能您没有,我仍然提到它以防万一...),您应该再次添加AdapterView.OnItemClickListener

    【讨论】:

    • 当我想通过单击按钮知道值时,您能告诉我如何获取所选项目吗?在那种情况下,我没有adapterView。
    • 啊,我只是将选定的值保存在一个单独的变量中:-)
    猜你喜欢
    • 2012-07-07
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多