我创建了两个类(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);
}
}
答案 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);