私はかなり多くのスピナーを含むアプリを書いています。より簡潔にするために、スピナーをビューおよび配列アダプターに関連付けるメソッドを作成しました。ただし、そのスピナーを使用しようとするたびにヌル ポインター例外が発生します (たとえば、Visibility を設定します)。
これが私のコードです:
private void setSpinners() {
ManureID = R.id.smanure;
ApplicationID = R.id.sapplication;
SlurryID = R.id.sslurry;
MaturityID = R.id.smaturity;
TimingID = R.id.stiming;
SoilTypeID = R.id.ssoil;
PreviousCropID = R.id.scropping;
GrassRotationID = R.id.sgrassrot;
RainID = R.id.srain;
StrawID = R.id.sstraw;
PID = R.id.sp;
KID = R.id.sk;
MgID = R.id.smg;
// TODO update slurry values depending
setSpinner(SlurryID, Slurry, slurrys);
setSpinner(ApplicationID, Application, application);
setSpinner(ManureID, Manure, manures);
setSpinner(MaturityID, Maturity, maturity);
setSpinner(TimingID, Timing, timing);
setSpinner(SoilTypeID, SoilType, soilTypes);
setSpinner(PreviousCropID, PreviousCrop, previousCrops);
setSpinner(GrassRotationID, GrassRotation, grassRotations);
setSpinner(RainID, Rain, rain);
setSpinner(StrawID, Straw, straw);
setSpinner(PID, P, p);
setSpinner(KID, K, k);
setSpinner(MgID, Mg, mg);
}
private void setSpinner(int ID, Spinner spinner, ArrayList<String> list) {
spinner = (Spinner) findViewById(ID);
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this,
ID, list);
spinner.setAdapter(adapt);
}
メソッドに問題があると思います。実際にビューをスピナーに正しく関連付けていませんか? メソッドを修正する方法はありますか?
ありがとう!