0

私はかなり多くのスピナーを含むアプリを書いています。より簡潔にするために、スピナーをビューおよび配列アダプターに関連付けるメソッドを作成しました。ただし、そのスピナーを使用しようとするたびにヌル ポインター例外が発生します (たとえば、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);
}

メソッドに問題があると思います。実際にビューをスピナーに正しく関連付けていませんか? メソッドを修正する方法はありますか?

ありがとう!

4

1 に答える 1