0

我做了两个类(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);
    }
}
4

2 回答 2

0

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

public class ObliczPodatki extends AppCompatActivity
于 2019-06-16T19:14:54.283 回答
0

您可以将功能更改obliczPodatki为:

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

调用它使用:

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

于 2019-06-16T19:24:51.183 回答