将Activity上下文传递给Class文件

时间:2019-06-16 19:12:27

标签: java android

我创建了两个类(DataBase和addItem到数据库类),并且激活了一个类。我不知道如何将Activity类传递给方法。 AndroidStudio引发错误。 我试图使用getApplicationContext(),但是没有用。这是代码:

数据库文件

   public DataBase(Context context) {
        super(context, DATABASE_NAME, null, TABLE_VERSION); }

DodajNadgranieClass(片段)文件

btZapisz.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                String radiobutton = "", bruttoValue ="", data, tytul;
                                SharedPreferences pref = getSharedPreferences("prefs", MODE_PRIVATE);

                                data = edPodajDate.getText().toString();
                                tytul = edPodajTytul.getText().toString();

                                if (edPodajDate.getText().toString().isEmpty() || edPodajTytul.getText().toString().isEmpty() || radioGroup.getCheckedRadioButtonId() == -1) {
                                    Toast.makeText(DodajNadgranieActivity.this, "Musisz podać wszystkie dane", Toast.LENGTH_SHORT).show();
                                } else {
                                    if (rbOperetka.isChecked()) {
                                        radiobutton = "1";
                                        bruttoValue = pref.getString("operetka", "");
                                    } else if (rbMusical.isChecked()) {
                                        radiobutton = "2";
                                        bruttoValue = pref.getString("musical", "");
                                    } else if (rbKoncert.isChecked()) {
                                        radiobutton = "3";
                                        bruttoValue = pref.getString("koncert", "");
                                    } else if (rbBajka.isChecked()) {
                                        radiobutton = "4";
                                        bruttoValue = pref.getString("bajka", "");
                                    } else if (rbOpera.isChecked()) {
                                        radiobutton = "5";
                        bruttoValue = pref.getString("opera", "");
                    } else if (rbInne.isChecked()) {
                        radiobutton = "6";
                        bruttoValue = pref.getString("inne", "");
                    }

                    ObliczPodatki obliczPodatki = new ObliczPodatki();
                    obliczPodatki.obliczPodatki(bruttoValue, data, tytul, radiobutton);

                    Toast.makeText(DodajNadgranieActivity.this, "DODANO", Toast.LENGTH_SHORT).show();
                    radioGroup.clearCheck();
                    edPodajTytul.setText(null);
                    edPodajDate.setText(null);

和活动文件

public class ObliczPodatki extends Application {

    public void obliczPodatki (String brutto, String data, String tytul, String radiobutton) {

        kwota_brutto = Double.parseDouble(brutto);
        kwota_netto = kwota_brutto * KWOTA_NETTO;
        kwota_ubezpieczenie_emerytalne = kwota_brutto * UBEZPIECZENIE_EMERYTALNE;
        kwota_ubezpieczenie_rentowe = kwota_brutto * UBEZPIECZENIE_RENTOWE;
        kwota_ubezpieczenie_zdrowotne = kwota_brutto * UBEZPIECZENIE_ZDROWOTNE;
        kwota_ubezpieczenie_chorobowe = kwota_brutto * UBEZPIECZENIE_CHOROBOWE;
        kwota_zaliczka_pit = kwota_brutto * ZALICZKA_PIT;

        sBrutto = "" + kwota_brutto;
        sNetto = "" + kwota_netto;
        sEmerytalne = "" + kwota_ubezpieczenie_emerytalne;
        sRentowe = "" + kwota_ubezpieczenie_rentowe;
        sZdrowotne = "" + kwota_ubezpieczenie_zdrowotne;
        sChorobowe = "" + kwota_ubezpieczenie_chorobowe;
        sPit = "" + kwota_zaliczka_pit;



       DataBase myDb = new DataBase(this);

        myDb.addNewNadgranie(data, tytul, radiobutton, sBrutto, sNetto, sEmerytalne, sRentowe, sZdrowotne, sChorobowe, sPit);
    }
}

2 个答案:

答案 0 :(得分:0)

您正在使用Application而不是Activity类。请更改为:

public class ObliczPodatki extends AppCompatActivity

答案 1 :(得分:0)

您可以将obliczPodatki的功能更改为:

public void obliczPodatki (Activity activity, String brutto, String data, String tytul, String radiobutton) {

使用:

obliczPodatki.obliczPodatki((DodajNadgranieActivity)v.getContext(),bruttoValue, data, tytul, radiobutton);