【问题标题】:Checking if spinner is selected and having null value in Android检查是否选择了微调器并在Android中具有空值
【发布时间】:2020-03-25 13:38:05
【问题描述】:

我想先根据以下情况检查微调器是否具有空值:

String Name= spinnerName.getSelectedItem().toString();
if(Name != null) {     
} else { 
}

这是正确的方法吗?因为我明白了 FATAL EXCEPTION: main java.lang.NullPointerException

String Name= spinnerName.getSelectedItem().toString();

我已经在创建时声明了它

【问题讨论】:

  • @MD:在String Name= spinnerName.getSelectedItem().toString(); 中获取NPE 异常意味着spinnerNamenull。所以认为比较字符串是另一个问题

标签: android spinner


【解决方案1】:

spinnerName 为 null 或如果 getSelectedItem() 返回 null,则调用 toString() 将导致您的应用因 NPE 而崩溃

String name= null;
if(spinnerName != null && spinnerName.getSelectedItem() !=null ) {
   name = (String)spinnerName.getSelectedItem();
} else  { 

}

【讨论】:

  • 一个问题我有一个三个微调器并检查那里的情况我该怎么办??
【解决方案2】:
if (spinner1.getCount()==0){
   Toast.makeText(getApplicationContext(),"spinner hasn't values",               
   Toast.LENGTH_LONG).show();
 }

【讨论】:

    【解决方案3】:

    Spinner 项目选择函数

    SpinnerName.setOnItemSelectedListener(new OnItemSelectedListener() {             
                @Override
                public void onItemSelected(AdapterView<?> adapter, View v,int position, long id) {
                    // On selecting a spinner item
                    selected_item = adapter.getItemAtPosition(position).toString();
                }
                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                }
    });
    

    检查selected Item的条件

    if(selected_item.matches("")){
              //conditions accordingly  
    return;
    }
    

    【讨论】:

      【解决方案4】:

      首先,您必须检查微调器中的任何项目是否已选择以及是否已初始化

      if (modeOfReportingSpinner.getSelectedItem()!=null){
              modeOfString = modeOfReportingSpinner.getSelectedItem().toString();
          }
      

      【讨论】:

        【解决方案5】:

        不要添加toString()。如果您添加toString(),它会尝试将null 转换为String,然后抛出Exception

        if(spinnerName.getSelectedItem() !=null ) {
           name = spinnerName.getSelectedItem().toString();
        }
        

        【讨论】:

          【解决方案6】:

          您可以像在那里一样定义出发地和目的地的微调器,然后在按钮onClickListener 中,您可以在开始新活动之前检查该值,例如:

          if(spinner1.getSelectedItem.toString.equalIgnoreCase(value) && spinner2.getSelectedItem.toString.equalIgnoreCase(value)) {
              Intent mIntent = new Intent(MainActivity.this, DetailActivity.class) startActivity(mIntent); 
          }else{ 
              //Show Toast here
          

          【讨论】:

            猜你喜欢
            • 2012-12-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-05-17
            • 1970-01-01
            • 1970-01-01
            • 2012-01-07
            • 1970-01-01
            相关资源
            最近更新 更多