2016-04-04 27 views
-2

nedenini bulamıyorum Ben android bir form üzerinde çalışıyorum bir damla açılan değerlerin üstüne yerleştirilen başka bir açılır menü değeri seçerek bir açılan değerleri render. Bu yüzden, Üniversite açılır listesinden bir Üniversite seçiyorum ve seçtiğim kurumların değerlerini veriyorum ve kurumlara açılan listeye eklediğimde, Kurum açılır listesinden bir Kurum seçiyorum. Buraya kadar her şey iyi ama bundan sonra tekrar üniversiteyi değiştirirsem, uygulama çöküyor. Sorun, Logcat'ta NullPointerException gösteriyor, ancak çökmekte olduğu satır sayısını veya kilitlenme nedenini göstermiyor.Android: NullPointerException

Logcat: Eğer adaptör null set çünkü

FATAL EXCEPTION: main 
java.lang.NullPointerException 
    at android.widget.Spinner.makeAndAddView(Spinner.java:548) 
    at android.widget.Spinner.layout(Spinner.java:496) 
    at android.widget.Spinner.onLayout(Spinner.java:460) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1670) 
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1528) 
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1441) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
    at android.widget.ScrollView.onLayout(ScrollView.java:1470) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1670) 
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1528) 
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1441) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1670) 
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1528) 
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1441) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
    at android.view.View.layout(View.java:14243) 
    at android.view.ViewGroup.layout(ViewGroup.java:4490) 
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2230) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1994) 
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1181) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4942) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:579) 
    at android.view.Choreographer.doFrame(Choreographer.java:548) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762) 
    at android.os.Handler.handleCallback(Handler.java:800) 
    at android.os.Handler.dispatchMessage(Handler.java:100) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5370) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
    at dalvik.system.NativeStart.main(Native Method) 

EducationalSchoolCollege.java

public class EducationalSchoolCollege extends AppCompatActivity { 


    private RadioGroup rg__educational_type; 
    private RadioButton radioeduButton; 
    Spinner university,instituition,degree,stream,tenureType,tenureLevel,cycleSpinner; 
    String student_uuid,student_name,email_id,selectedTypeIs=""; 

    Map<String,String> educationSubmitMapData = new HashMap<>(); 
    Map<String,String> universityListMap = new HashMap<>(); 
    Map<String,String> instituteListMap = new HashMap<>(); 


    List<String> universityList = new ArrayList<>(); 
    List<String> instituteList = new ArrayList<>(); 
    List<String> degreeList = new ArrayList<>(); 
    List<String> streamList = new ArrayList<>(); 
    List<String> tenureTypeList = new ArrayList<>(); 
    List<String> tenureLevelList = new ArrayList<>(); 
    List<String> cycleList = new ArrayList<>(); 

    List<String> universityNameList = new ArrayList<>(); 
    List<String> instituteNameList = new ArrayList<>(); 
    List<String> degreeNameList = new ArrayList<>(); 
    List<String> streamNameList = new ArrayList<>(); 
    List<String> tenureNameList = new ArrayList<>(); 
    List<String> tenureLevelNameList = new ArrayList<>(); 
    List<String> cycleNameList = new ArrayList<>(); 


    String university_uuid,institute_uuid,degree_uuid,stream_uuid,tenure_uuid,tenure_level_uuid,cycle_uuid,degree_name; 
    Button submitEducationalBtn; 
    SharedPreferences afterClassPref; 
    AfterClassApp controller; 
    public ProgressDialog progdialog; 
    TextView clickHereId; 
    String fromProfile = "",genreic_user=""; 
    //avinash 
    // TextView textView4; 
    TextView degreeText,streamText,tenureText,cycleText; 
    EditText edt_instituition_other; 
    boolean selectedIsOther=false; 
    boolean isCheckedRadio = false; 
    //avinash 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.educational_school_college); 

     controller = (AfterClassApp) getApplicationContext(); 
     afterClassPref = getApplicationContext().getSharedPreferences(Constants.SHARED_PREF_NAME, Context.MODE_PRIVATE); 
     student_uuid = afterClassPref.getString("studentUUID", null); 
     student_name = afterClassPref.getString("studentName", null); 
     email_id = afterClassPref.getString("studentEmail", null); 

     university = (Spinner) findViewById(R.id.university); 
     instituition = (Spinner) findViewById(R.id.instituition); 
     degree = (Spinner) findViewById(R.id.degree); 
     stream = (Spinner) findViewById(R.id.stream); 
     tenureType = (Spinner) findViewById(R.id.tenure); 
     tenureLevel = (Spinner) findViewById(R.id.tenureLevel); 
     cycleSpinner = (Spinner) findViewById(R.id.cycle); 
     submitEducationalBtn = (Button) findViewById(R.id.submitEducationalBtn); 
     clickHereId = (TextView) findViewById(R.id.clickHereId); 

     //avinash 
     edt_instituition_other = (EditText)findViewById(R.id.edt_instituition_other); 
     degreeText=(TextView)findViewById(R.id.degreeText); 
     streamText=(TextView)findViewById(R.id.streamText); 
     tenureText=(TextView)findViewById(R.id.tenureText); 
     cycleText=(TextView)findViewById(R.id.cycleText); 

     // textView4 = (TextView)findViewById(R.id.textView4); 
     rg__educational_type = (RadioGroup) findViewById(R.id.rg__educational_type); 

     clickHereId.setVisibility(View.GONE); 

     if (Build.VERSION.SDK_INT < 21) { 
      rg__educational_type.setPadding(3,3,3,3); 
     } 

     Bundle extras = getIntent().getExtras(); 

     if (extras != null) { 
      if (extras.containsKey("from_profile")){ 
       fromProfile = extras.getString("from_profile"); 
      } 
      if (extras.containsKey("genreic_user")){ 
       genreic_user = extras.getString("genreic_user"); 
      } 

     } 

     //G Analytics 
     if (!Constants.IS_EMAIL_EXIT) { 
      Tracker tracker = ((AfterClassApp) getApplication()).getTracker(AfterClassApp.TrackerName.APP_TRACKER); 
      tracker.setScreenName("MyAfterClass EducationalSchoolCollege"); 
      tracker.send(new HitBuilders.AppViewBuilder().build()); 
     } 

     rg__educational_type.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 
     { 
      @Override 
      public void onCheckedChanged(RadioGroup group, int checkedId) { 


       int selectedId = rg__educational_type.getCheckedRadioButtonId(); 

       radioeduButton = (RadioButton) findViewById(selectedId); 
       instituition.setAdapter(null); 
       degree.setAdapter(null); 
       stream.setAdapter(null); 
       tenureType.setAdapter(null); 
       tenureLevel.setAdapter(null); 
       cycleSpinner.setAdapter(null); 
       if(radioeduButton.getText().toString().equals("School")){ 
        edt_instituition_other.setVisibility(View.GONE); 
        isCheckedRadio = true; 
        clickHereId.setVisibility(View.GONE); 
        setAdapter(university,universityNameList); 
        universityList.clear(); 
        instituteList.clear(); 
        degreeList.clear(); 
        streamList.clear(); 
        tenureTypeList.clear(); 
        tenureLevelList.clear(); 
        cycleList.clear(); 

        universityNameList.clear(); 
        instituteNameList.clear(); 
        degreeNameList.clear(); 
        streamNameList.clear(); 
        tenureNameList.clear(); 
        tenureLevelNameList.clear(); 
        cycleNameList.clear(); 
        firstTimeSchoolUserData("university",null,null,null,null); 
        selectedTypeIs = "board"; 
        degreeText.setVisibility(View.GONE); 
        degree.setVisibility(View.GONE); 
        stream.setVisibility(View.GONE); 
        tenureType.setVisibility(View.GONE); 
        cycleSpinner.setVisibility(View.GONE); 
        streamText.setVisibility(View.GONE); 
        tenureText.setVisibility(View.GONE); 
        cycleText.setVisibility(View.GONE); 


       } 
       if(radioeduButton.getText().toString().equals("College")){ 
        edt_instituition_other.setVisibility(View.GONE); 
        isCheckedRadio = true; 
        if ("yes".equalsIgnoreCase(genreic_user)){ 
         clickHereId.setVisibility(View.GONE); 
        }else{ 
         clickHereId.setVisibility(View.VISIBLE); 
        } 

        setAdapter(university,universityNameList); 
        universityList.clear(); 
        instituteList.clear(); 
        degreeList.clear(); 
        streamList.clear(); 
        tenureTypeList.clear(); 
        tenureLevelList.clear(); 
        cycleList.clear(); 

        universityNameList.clear(); 
        instituteNameList.clear(); 
        degreeNameList.clear(); 
        streamNameList.clear(); 
        tenureNameList.clear(); 
        tenureLevelNameList.clear(); 
        cycleNameList.clear(); 
        firstTimeUserData("university", null, null,null,null,null,null,null); 
        selectedTypeIs = "college"; 
        degreeText.setVisibility(View.VISIBLE); 
        degree.setVisibility(View.VISIBLE); 
        stream.setVisibility(View.VISIBLE); 
        tenureType.setVisibility(View.VISIBLE); 
        cycleSpinner.setVisibility(View.VISIBLE); 
        streamText.setVisibility(View.VISIBLE); 
        tenureText.setVisibility(View.VISIBLE); 
        cycleText.setVisibility(View.VISIBLE); 

       } 
      } 
     }); 
     // avinash 



     clickHereId.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(EducationalSchoolCollege.this, OtherFirstTimeEducational.class); 
       startActivity(intent); 
      } 
     }); 

//  setAdapter(university,universityList); 
//  firstTimeUserData("university",null,null,null,null,null,null,null); 

     university.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String seluniversity = (String) university.getSelectedItem(); 
       instituteList.clear();; 
       degreeList.clear(); 
       streamList.clear(); 
       tenureTypeList.clear(); 
       tenureLevelList.clear(); 
       cycleList.clear(); 

       instituteNameList.clear();; 
       degreeNameList.clear(); 
       streamNameList.clear(); 
       tenureNameList.clear(); 
       tenureLevelNameList.clear(); 
       cycleNameList.clear(); 
       Log.d("UNI ","seluniversity "+ seluniversity+ " pos:: "+position); 
//    clear on proper selecting 



       //    clear on proper selecting 

       if ("board".equalsIgnoreCase(selectedTypeIs)){ 
        //Todo 
        university_uuid = universityListMap.get(seluniversity); 
        firstTimeSchoolUserData("institute",university_uuid,null,null,null); 
       }else{ 
        if (!"Select".equalsIgnoreCase(seluniversity)){ 
         university_uuid = universityList.get(position-1); 
         educationSubmitMapData.put("university_uuid",university_uuid); 
         Log.d("UNI ", "university_uuid "+university_uuid); 
//     firstTimeUserInstitutionData("institute",university_uuid); 
         firstTimeUserData("institute",university_uuid,null,null,null,null,null,null); 
        }else{ 
         university_uuid = null; 
        } 
       } 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 
     }); 

     instituition.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String selInstitute = (String) instituition.getSelectedItem(); 
       degreeList.clear(); 
       streamList.clear(); 
       tenureTypeList.clear(); 
       tenureLevelList.clear(); 
       cycleList.clear(); 

       degreeNameList.clear(); 
       streamNameList.clear(); 
       tenureNameList.clear(); 
       tenureLevelNameList.clear(); 
       cycleNameList.clear(); 

       if ("board".equalsIgnoreCase(selectedTypeIs)) { 
        //Todo 
        institute_uuid = instituteListMap.get(selInstitute); 
        if ("other".equalsIgnoreCase(selInstitute)){ 
         // TODO: Hide edittext box and show here 
         edt_instituition_other.setVisibility(View.VISIBLE); 
         selectedIsOther=true; 
        }else{ 
         selectedIsOther=false; 
         edt_instituition_other.setVisibility(View.GONE); 
        } 
        tenureLevelList.clear(); 
        firstTimeSchoolUserData("tenure_level", university_uuid, institute_uuid, null, null); 
       } else { 
        if (!"Select".equalsIgnoreCase(selInstitute)) { 
//   int position = university.getSelectedItemPosition(); 
         if(instituteList.size()==0){ 
          return; 
         } 
         edt_instituition_other.setVisibility(View.GONE); 
         institute_uuid = instituteList.get(position - 1); 
         educationSubmitMapData.put("institute_uuid", institute_uuid); 
//     firstTimeUserDegreeData("degree", university_uuid, institute_uuid); 
         firstTimeUserData("degree", university_uuid, institute_uuid, null, null, null, null, null); 
        } else { 
         institute_uuid = null; 
        } 
       } 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 
     }); 

     degree.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String selInstitute = (String) degree.getSelectedItem(); 
       streamList.clear(); 
       tenureTypeList.clear(); 
       tenureLevelList.clear(); 
       cycleList.clear(); 

       streamNameList.clear(); 
       tenureNameList.clear(); 
       tenureLevelNameList.clear(); 
       cycleNameList.clear(); 
       if (!"Select".equalsIgnoreCase(selInstitute)){ 
//   int position = university.getSelectedItemPosition(); 
        if(degreeList.size()==0){ 
         return; 
        } 
        degree_uuid = degreeList.get(position-1); 
        degree_name = degreeNameList.get(position-1); 
//     Log.d("degree_name",""+degree_name); 
        educationSubmitMapData.put("degree_uuid",degree_uuid); 
//     firstTimeUserDegreeData("degree", university_uuid, institute_uuid); 
        firstTimeUserData("stream",university_uuid,institute_uuid,degree_uuid,null,null,null,null); 
       }else{ 
        degree_uuid = null; 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 
     }); 

     stream.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String selInstitute = (String) stream.getSelectedItem(); 
       tenureTypeList.clear(); 
       tenureLevelList.clear(); 
       cycleList.clear(); 

       tenureNameList.clear(); 
       tenureLevelNameList.clear(); 
       cycleNameList.clear(); 
       if (!"Select".equalsIgnoreCase(selInstitute)){ 
//   int position = university.getSelectedItemPosition(); 
        if(streamList.size()==0){ 
         return; 
        } 
        stream_uuid = streamList.get(position-1); 
        educationSubmitMapData.put("stream_uuid",stream_uuid); 
//     firstTimeUserDegreeData("degree", university_uuid, institute_uuid); 
        firstTimeUserData("tenure_type",university_uuid,institute_uuid,degree_uuid,stream_uuid,null,null,null); 
       }else{ 
        stream_uuid = null; 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 




      } 
     }); 

     tenureType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String selInstitute = (String) tenureType.getSelectedItem(); 
       tenureLevelList.clear(); 
       cycleList.clear(); 

       tenureLevelNameList.clear(); 
       cycleNameList.clear(); 
       if (!"Select".equalsIgnoreCase(selInstitute)){ 
//   int position = university.getSelectedItemPosition(); 
        if(tenureTypeList.size()==0){ 
         return; 
        } 
        tenure_uuid = tenureTypeList.get(position-1); 
        educationSubmitMapData.put("tenure_type",tenure_uuid); 
//     firstTimeUserDegreeData("degree", university_uuid, institute_uuid); 
        firstTimeUserData("tenure_level",university_uuid,institute_uuid,degree_uuid,stream_uuid,tenure_uuid,null,null); 
       }else{ 
        tenure_uuid = null; 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 
     }); 

     tenureLevel.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String selInstitute = (String) tenureLevel.getSelectedItem(); 
       cycleList.clear(); 

       cycleNameList.clear(); 
       if (!"Select".equalsIgnoreCase(selInstitute)){ 
//   int position = university.getSelectedItemPosition(); 
        if(tenureLevelList.size()==0){ 
         return; 
        } 
        tenure_level_uuid = tenureLevelList.get(position-1); 
        educationSubmitMapData.put("tenure_level",tenure_level_uuid); 
//     firstTimeUserDegreeData("degree", university_uuid, institute_uuid); 
        firstTimeUserData("cycle",university_uuid,institute_uuid,degree_uuid,stream_uuid,tenure_uuid,tenure_level_uuid,null); 
       }else{ 
        tenure_level_uuid = null; 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 
     }); 

     cycleSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       String selInstitute = (String) cycleSpinner.getSelectedItem(); 
       if (!"Select".equalsIgnoreCase(selInstitute)){ 
//   int position = university.getSelectedItemPosition(); 
        if(cycleList.size()==0){ 
         return; 
        } 
        cycle_uuid = cycleList.get(position-1); 
        educationSubmitMapData.put("cycle",cycle_uuid); 
//     firstTimeUserDegreeData("degree", university_uuid, institute_uuid); 
//     firstTimeUserData("cycle",university_uuid,institute_uuid,degree_uuid,stream_uuid,tenure_uuid,cycle_uuid,null); 
       }else{ 
        cycle_uuid = null; 
       } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 
     }); 
} 

cevap

1

Sen Bunun yerine mySpinner.setEnabled(false) kullanabilirsiniz bunun spinner.setAdapter(null); yapmamalısınız. Her ne kadar aynı olmasa da,

+0

Çalıştığını kontrol edeyim. – Shivam

+0

Bu satırın yerine ne koyabileceğimi söyler misin? – Shivam

+0

spinner.setEnabled (null) yerine spinner.setEnabled (false) kullanın, bu hiçbir şey spinnerdan seçilemez. –

1

NullPointerException oluşur. Spinner'da setAdapter (boş) öğesini kaldırın.

  instituition.setAdapter(null); 
      degree.setAdapter(null); 
      stream.setAdapter(null); 
      tenureType.setAdapter(null); 
      tenureLevel.setAdapter(null); 
      cycleSpinner.setAdapter(null); 
+0

'dan ödün vermeniz gerekiyorsa, bu satırın yerine ne koyabileceğimi söyleyebilir misiniz? – Shivam

+0

neden setAdapter (null) var? nedenini kastediyorum? – sasikumar

+0

Null koyuyorum çünkü tüm alanların değerini sıfırlamak istiyorum. – Shivam

İlgili konular