Aplicativo fecha por motivo desconhecido (Android Studio)

Boa tarde,
Eu estou no meur primeiro semestre da faculdade e junto com meu grupo, resolvemos criar um aplicativo em Java no Android Studio, este aplicativo basicamente é uma calculadora de descontos a partir da quantidade de comprimidos que seriam descartados numa farmacia ficticia.
O primeiro teste do aplicativo funciona muito bem mas só é usado a Activity_Main em xml e em Java (deixarei o código abaixo), assim eu e meu grupo decidimos reformar o aplicativo e colocar “abas” usando o TabLayout e “fragmentos” para criar o efeito desejado. O problema foi que ao colocar o código do primeiro aplicativo neste segundo e fazer algumas reformas, quando o aplicativo roda e o usuario coloca as informações no EditText e clica no botão que aciona o cálculo, o aplicativo fecha, coisa que no primeiro aplicativo, não acontecia, ele funcionava bem.
Tentamos de tudo para tentar entender o motivo, chegamos até pensar que o código não está recolhendo as informações dos EditText, alguém poderia dar uma luz aos pobres iniciantes?
Já peço desculpas pelo código mal organizado!
Código do primeiro aplicativo (Activity_Main):

public class MainActivity extends AppCompatActivity {

    private EditText classe;
    private EditText editfarm;
    private EditText comprimido;
    private TextView resultado;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        classe=findViewById(R.id.classe);
        editfarm=findViewById(R.id.editfarm);
        comprimido=findViewById(R.id.comprimido);
        resultado=findViewById(R.id.resultado);
   }

   public void calculo(View view) {
       double comp = Double.parseDouble(comprimido.getText().toString());
       double An = 3 + (comp - 1) * 0.2;
       double An1 = 4 + (comp - 1) * 0.4;
       double An2 = 3 + (comp - 1) * 0.3;
       double An3 = 4 + (comp - 1) * 0.6;
       double An4 = 4 + (comp - 1) * 0.7;
       String remedio = editfarm.getText().toString();
       String classes = classe.getText().toString();
       remedio = remedio.toLowerCase();
       classes = classes.toLowerCase();
           switch (classes) {
               case "analgesico":
                   if (remedio == "paracetamol") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "dipirona") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "novalgina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "mascalgina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }

               break;
               case "anti-inflamatorio":
                   if (remedio == "ibuprofeno") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "AAS") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "nimesulida") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "diclifenaco") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               break;
               case "anticoncepcional":
                   if (remedio == "Qlaira") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
               }
               if (remedio == "iumi") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
               }
               if (remedio == "tamisa") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
               }
               if (remedio == "elanni") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
               }
               break;
               case "antigripal":
                   if (remedio == "benegripe") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
               }
               if (remedio == "cimegripe") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
               }
               if (remedio == "coristina d") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
               }
               if (remedio == "resfenol") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
               }
               break;
               case "antialergico":
                   if (remedio == "loratadina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "histamin") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "allegra") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               if (remedio == "prednisona") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
               }
               break;
               case "antibiotico":
                   if (remedio == "cefalenina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
               }
               if (remedio == "penicilina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
               }

               if (remedio == "amoxilina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
               }

               if (remedio == "ciprofloxacino") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
               }
               break;
               case "ansiolitico":
                   if (remedio == "rivotril") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
               }
               if (remedio == "fluoxetina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
               }
               break;
               case "antidepressivo":
                   if (remedio == "sertralina") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
               }
               if (remedio == "clonazepam") 
               {
                   resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
               }
               break;
               default:
                   resultado.setText("Por favor, verifique as informações novamente");


           }


       }

   }

Código que não funciona (Fragment):

package com.example.farmapp;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.fragment.app.Fragment;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import java.text.DecimalFormat;
import java.text.DecimalFormat;
import androidx.viewpager.widget.ViewPager;

import java.text.DecimalFormat;


    public class BlankFragment extends Fragment {
        private EditText classe;
        private EditText editfarm;
        private EditText comprimido;
        private TextView resultado;
       

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      
            View view = inflater.inflate(R.layout.fragment_blank, container, false);

         
            classe = getActivity().findViewById(R.id.classe);
            editfarm = getActivity().findViewById(R.id.editfarm);
            comprimido=getActivity().findViewById(R.id.comprimido);
            resultado=getActivity().findViewById(R.id.resultado);
   
            return view;
        }

       



    public void calculo(View view) {
        double comp = Double.parseDouble(comprimido.getText().toString());
        double An = 3 + (comp - 1) * 0.2;
        double An1 = 4 + (comp - 1) * 0.4;
        double An2 = 3 + (comp - 1) * 0.3;
        double An3 = 4 + (comp - 1) * 0.6;
        double An4 = 4 + (comp - 1) * 0.7;
        String remedio = editfarm.getText().toString().toLowerCase();
        String classes = classe.getText().toString().toLowerCase();
        switch (classes) {
            case "analgesico":
                if (remedio.equals("paracetamol"))
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));

            }
            if (remedio == "dipirona")
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "novalgina")
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "mascalgina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }

            break;
            case "anti-inflamatorio":
                if (remedio == "ibuprofeno") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "AAS") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "nimesulida") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "diclifenaco") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            break;
            case "anticoncepcional":
                if (remedio == "Qlaira") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
            }
            if (remedio == "iumi") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
            }
            if (remedio == "tamisa") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
            }
            if (remedio == "elanni") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An1));
            }
            break;
            case "antigripal":
                if (remedio == "benegripe") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
            }
            if (remedio == "cimegripe") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
            }
            if (remedio == "coristina d") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
            }
            if (remedio == "resfenol") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An2));
            }
            break;
            case "antialergico":
                if (remedio == "loratadina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "histamin") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "allegra") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            if (remedio == "prednisona") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An));
            }
            break;
            case "antibiotico":
                if (remedio == "cefalenina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
            }
            if (remedio == "penicilina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
            }

            if (remedio == "amoxilina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
            }

            if (remedio == "ciprofloxacino") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An3));
            }
            break;
            case "ansiolitico":
                if (remedio == "rivotril") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
            }
            if (remedio == "fluoxetina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
            }
            break;
            case "antidepressivo":
                if (remedio == "sertralina") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
            }
            if (remedio == "clonazepam") 
            {
                resultado.setText(new DecimalFormat("O valor do seu desconto é de RS:#,##0.00").format(An4));
            }
            break;
            default:
                resultado.setText("Por favor, verifique as informações novamente");


        }


    }

    }

Em Java é possível usar o switch com Strings, mas no if as Strings precisam ser comparadas usando o método equals. Outra coisa, o nome do remédio também exclui os outros certo? Você pode encadear switchs ou ajustar seus ifs. Mais uma coisa. Seu DecimalFormat está errado, vcs não sabem o que estão fazendo. Outra coisa, para qualquer remédio de uma “classe” o texto gerado é o mesmo, não há diferença para o remédio, seus ifs, além de errados, não fazem sentido… É sério que no primeiro semestre da faculdade vocês estão aprendendo a programar em Android sem não ter aprendido o básico de programação? Isso aí é um trabalho de fim de semestre? Onde vc está fazendo faculdade? Qual o curso?

O senhor esta certo, a gente basicamente não sabe o que está fazendo.
Nem eu e nem meu grupo tivemos java ou android na faculdade ainda, a ideia do aplicativo surgiu porque na minha faculdade tem uma materia chamada UPX (usina de projetos experimentais), em que nós temos que realizar um projeto que tenha viés sustentavel e seja tecnológico para apresentar no fim do ano e uma das alternativas que conseguimos chegar foi tentar projetar um app, a maioria do meu grupo são de outras engenharias e por isso, acabei ficando sozinha para monta-lo.

Eu faço engenharia da computação, as únicas matérias ligadas à computação que tive neste semestre foram linguagem C e Arduino, por isso eu não entendo da sintaxe de java, ao escrever tentei o maximo me basear em C, que é o que eu sei e como o primeiro código funcionou, eu não mexi mais.

Sobre a lógica do switch e dos ifs, no primeiro codigo, ela funciona, acredito que seja pq é digitado a classe, remédio e a quantidade, com o nome da classe, entra no switch, com o nome do remédio, se ele fizer parte da “promoção”, entra em um dos if e assim quando o botão é acionado, o calculo é feito e mostrado na tela.
E sobre o DecimalFormart, eu não consegui usar o %f, por motivos obvios, então pesquisei maneiras e esse formato acabou dando certo no primeiro codigo, por isso deixei.

Como estou no primeiro semestre, fazendo algo que eu nunca vi na vida, só do primeiro codigo ter funcionado e o app ja ter virado APK, fiquei feliz. Estou tentando o maximo para resolver o bug do segundo aplicativo, pois só falta arrumar a questão do botão acionar o calculo, agradeço os conselhos e irei arrumar o que o senhor apontou.

Entendi.

Para comparar no if:

String nome = "jão";
if ( nome.equals( "joão" ) ) {
    ...
} else {
    ...
}

No lugar do DecimalFormat vc pode fazer algo assim:
resultado.setText( String.format( "O valor é R$%.2f", suaVariavelDouble ) );

String.format funciona igual ao System.out.printf do Java e praticamnete igual ao printf do C.