检查是否选择了微调器并在 Android 中具有空值

Checking if spinner is selected and having null value in Android

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

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

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

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

我已经在 Create 上声明了它

spinnerName 为空,或者如果 getSelectedItem() returns 为空,调用 toString() 将导致您的应用因 NPE

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

}

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;
}
if (spinner1.getCount()==0){
   Toast.makeText(getApplicationContext(),"spinner hasn't values",               
   Toast.LENGTH_LONG).show();
 }

首先你必须检查微调器中的任何项目是否被选中以及是否被初始化

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

您可以像在此处那样定义出发地和目的地的微调器,然后在按钮内 onClickListener 您可以在开始新的 activity 之前检查值,例如:

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

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

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