Android AlertDialog给出了错误java.lang.NullPointerException

时间:2012-08-05 17:54:37

标签: android spinner alertdialog

我需要在我的应用程序中显示一个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);

感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

显而易见的候选人是spinner为空,表明这一点:

Spinner spinner = (Spinner) findViewById(R.id.aggiungi_ora_materia);

返回null。首先要做的是检查 - 记录spinner是否为空。

您确定使用的是正确的ID吗?根据{{​​3}},如果使用错误的ID,findViewById将返回null:

  

查找由onCreate(Bundle)中处理的XML中的id属性标识的视图。

     

返回
  如果找到该视图,否则返回null。