我想首先检查spinner是否具有基于以下内容的空值:
String Name= spinnerName.getSelectedItem().toString();
if(Name != null) {
} else {
}
这是一个正确的方法吗?因为我明白 <{1}}
FATAL EXCEPTION: main java.lang.NullPointerException
我在Create
上声明了它答案 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