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

时间:2015-04-27 08:56:53

标签: android spinner

我想首先检查spinner是否具有基于以下内容的空值:

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

这是一个正确的方法吗?因为我明白 <{1}}

FATAL EXCEPTION: main java.lang.NullPointerException

我在Create

上声明了它

6 个答案:

答案 0 :(得分:32)

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

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

}

答案 1 :(得分:2)

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;
}

答案 2 :(得分:1)

if (spinner1.getCount()==0){
   Toast.makeText(getApplicationContext(),"spinner hasn't values",               
   Toast.LENGTH_LONG).show();
 }

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

请勿添加toString()。如果您添加toString(),它将尝试将null转换为String,那么它将抛出Exception

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

答案 5 :(得分:-1)

您可以像在那里一样为出发地和目的地定义微调器,然后在按钮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