private ArrayAdapter<Assunto> getAssuntosAdapterByAssuntoPai(int idAssuntoPai) {
   ArrayAdapter<Assunto> assuntoArrayAdapter = null;
   try {
     List<Assunto> subAssuntos = AssuntoBOImpl.getInstance(this).selectSubAssuntos(idAssuntoPai);
     assuntoArrayAdapter =
         new ArrayAdapter<Assunto>(this, android.R.layout.simple_spinner_item, subAssuntos);
     assuntoArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   } catch (QueryModelException e) {
     e.printStackTrace();
     new AlertDialog.Builder(this)
         .setTitle("Falha ao Buscar Sub-Assuntos")
         .setIcon(android.R.drawable.ic_dialog_alert)
         .setMessage("Erro ao buscar os sub-assuntos: \"" + e.getMessage() + "\"")
         .show();
   }
   return assuntoArrayAdapter;
 }
  // ----- Events ----- //
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_acompanhamento_estudos);

    acompanhamentoBO = AcompanhamentoBOImpl.getInstance(this);
    estudoBO = EstudoBOImpl.getInstance(this);
    assuntoBO = AssuntoBOImpl.getInstance(this);
    disciplinaBO = DisciplinaBOImpl.getInstance(this);
    assuntosAdapter =
        new ArrayAdapter<Assunto>(
            this, android.R.layout.simple_spinner_item, new ArrayList<Assunto>());
    assuntosAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    dicIdxAndIdSubAssuntos = new HashMap<Integer, SubAssunto>();

    intializeScreen();
    bindEvents();
  }