我需要在我的应用程序中显示一个Dialog。在这个对话框中有一个Spinner。所以我用这段代码来显示对话框并填充Spinner:
public class setup4 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setup4);
}
//On bottone setup 4
public void onSetup4bottone(View v)
{
AlertDialog.Builder customDialog = new AlertDialog.Builder(this);
customDialog.setTitle("Aggiungi ora scolastica");
LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=layoutInflater.inflate(R.layout.aggiungi_ora,null);
customDialog.setView(view);
List<String> materie = new ArrayList<String>();
materie.add("ADASDASD"); materie.add("LOLOLOL");
Spinner spinner = (Spinner) findViewById(R.id.aggiungi_ora_materia);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, materie);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
customDialog.show();
}
}
onSetup4bottone是必须调用Dialog的简单按钮的click事件。 我无法理解为什么我在这行代码中得到了java.lang.NullPointerException:
spinner.setAdapter(adapter);
感谢您的帮助:)
答案 0 :(得分:2)
显而易见的候选人是spinner
为空,表明这一点:
Spinner spinner = (Spinner) findViewById(R.id.aggiungi_ora_materia);
返回null。首先要做的是检查 - 记录spinner
是否为空。
您确定使用的是正确的ID吗?根据{{3}},如果使用错误的ID,findViewById
将返回null:
查找由onCreate(Bundle)中处理的XML中的id属性标识的视图。
返回
如果找到该视图,否则返回null。