【问题标题】:How to use if condition in spinner selection - Android如何在微调器选择中使用 if 条件 - Android
【发布时间】:2020-10-17 02:02:59
【问题描述】:

AndroidStudio 中,如何检查Spinner 选择中的if 条件。 Spinner 选择的事件是什么。我想重定向到Spinner 中选定项目的指定Activity。请帮我。我不是要求获得积分。如果你认为这个问题没有用。你给我减分,但告诉我解决方案。有人给了我减分,但没有回答我的问题。

谢谢。

我很困惑。下面给出的答案是检查是否被选中。我想检查item1是否被选中或item2被选中或3或4......

【问题讨论】:

    标签: android android-studio if-statement spinner


    【解决方案1】:

    Spinner 有 itemSelected 监听器

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
       @Override
       public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        // your code here
       }
    
       @Override
       public void onNothingSelected(AdapterView<?> parentView) {
        // your code here
       }
    });
    

    【讨论】:

    • 无法解析符号“微调器”。 (我的微调器 ID 是微调器)。
    • 您的微调器实例的名称是什么
    • 什么是微调器实例。
    • 例如 Spinner spinner=(Spinner)findViewById(R.id.yourspinner_id);这里微调器是实例
    • 你在哪里设置这个监听器到微调器?在你的 oncreate() 或其他地方尝试它
    【解决方案2】:

    如果微调项是可数的,您可以使用 switch case。

        Spinner sp = (Spinner) findViewById(R.id.spinner);
        sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    
                switch(position) {
    
                   case 0 : // for item 1
                   Intent intent= new Intent(this, Activity1.class);
                   startActivity(intent);
                   break; 
    
                   case 1 :
                   Intent intent= new Intent(this, Activity2.class);
                   startActivity(intent);
                   break; 
    
                 /* you can have any number of case statements */
                 default :
    
              }   
          }
    
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
    
          }
     });
    

    【讨论】:

    • 我可以用 case a: case b:(因为我用的是字符串)
    • 你可以使用a、b作为Char但不能作为String。
    • 好吧,伙计,这不是检查您的字符串、整数或字符,这仅适用于您的位置,表示情况 0:表示您的微调器的位置 0
    【解决方案3】:
    ((Spinner)(findViewByid(R.id.yourSpinnerId)).
    setOnItemSelectedListener(new OnItemSelectedListener() {
       @Override
       public void onItemSelected(AdapterView<?> parentView, View selectedItemView, 
    int position, long id) {
    
        // do,whatever you want to do
    
       }
    
       @Override
       public void onNothingSelected(AdapterView<?> parentView) {
    
       }
    });
    

    【讨论】:

    • @Singaram Manickam,如果我的代码正常工作,请接受答案,以便其他人可以得到帮助。
    【解决方案4】:

    布局:

     <Spinner
            android:id="@+id/planets_spinner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    

    活动:

    Spinner spinner=(Spinner)findViewById(R.id.planets_spinner);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
               //geeky stuff goes here
                if(arrayItems[position]!=null)
                 {
                    //can do something like this
                }
            }
    
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
    
            }
        });
    

    【讨论】:

      【解决方案5】:
      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
              @Override
              public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                  //open your activity here
              }
      
              @Override
              public void onNothingSelected(AdapterView<?> parent) {
      
              }
          });
      

      【讨论】:

        【解决方案6】:
        Spinner spinner=(Spinner)findViewById(R.id.yourspinner);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                   Intent intent= new Intent(this,YourActivity.class);
        startActivity(intent);
                }
        
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
        
                }
            });
        

        【讨论】:

        • (this,YourActivity.class); - 这条线在红线下划线。如何解决。
        • 在yourActivity的地方把你的Activity名字放到你想去的地方
        • 在“this”放置getApplicationContext()的地方
        【解决方案7】:
           @Override
        public void onItemSelected(AdapterView<?> parent, View v, int position,long id)
        {
        
        spinner_value =  parent.getSelectedItem().toString();
        Log.i("spinner_value", ".."+spinner_value);
        
           if(parent.getItemAtPosition(position).equals("January"))
            {
                Toast.makeText(this, "Success",Toast.LENGTH_SHORT).show();
            }
        }
        
        public void onNothingSelected(AdapterView<?> parent) 
        {
        
        }
        

        【讨论】:

          【解决方案8】:
          if (spinner.selectedItem == "Blank") { 
              Toast.makeText(context, "could not be blank" ,Toast.LENGTH_SHORT).show()
              return
          }
          

          【讨论】:

          • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助,质量更高,更有可能吸引投票。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-04
          • 1970-01-01
          • 1970-01-01
          • 2017-03-07
          • 1970-01-01
          • 2014-01-10
          • 1970-01-01
          相关资源
          最近更新 更多