I am a beginner so I get confused by basic things.
So, I want to use the value/string called kuupaev from "public void onDateSet" in lisamise_nupp.setOnClickListener (I have written "kuupaev" where I need to use it).
Problem is, I can’t figure out how to get kuupaev from onDateSet to where I also need to use it.
public class LisaActivity extends AppCompatActivity {
EditText meeldetuletus_input, kirjeldus_input;
Button lisamise_nupp, kuupaeva_nupp;
private DatePickerDialog datePickerDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lisa);
initDatePicker();
kuupaeva_nupp = findViewById(R.id.kuupaeva_nupp);
kuupaeva_nupp.setText(tananeKuupaev());
meeldetuletus_input = findViewById(R.id.meeldetuletus_input);
kirjeldus_input = findViewById(R.id.kirjeldus_input);
lisamise_nupp = findViewById(R.id.lisamise_nupp);
lisamise_nupp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyDatabaseHelper MyDB = new MyDatabaseHelper(LisaActivity.this);
MyDB.lisaMeeldetuletus(meeldetuletus_input.getText().toString().trim(),
kirjeldus_input.getText().toString().trim(),
kuupaev);
}
});
}
private String tananeKuupaev() {
Calendar cal = Calendar.getInstance();
int aasta = cal.get(Calendar.YEAR);
int kuu = cal.get(Calendar.MONTH);
kuu = kuu + 1;
int paev = cal.get(Calendar.DAY_OF_MONTH);
return makeDateString(paev, kuu, aasta);
}
private void initDatePicker() {
DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int aasta, int kuu, int paev) {
kuu = kuu + 1;
String kuupaev = makeDateString(paev, kuu, aasta);
kuupaeva_nupp.setText(kuupaev);
}
};
Calendar cal = Calendar.getInstance();
int aasta = cal.get(Calendar.YEAR);
int kuu = cal.get(Calendar.MONTH);
int paev = cal.get(Calendar.DAY_OF_MONTH);
int style = AlertDialog.THEME_HOLO_LIGHT;
datePickerDialog = new DatePickerDialog(this, style, dateSetListener, aasta, kuu, paev);
datePickerDialog.getDatePicker().setMinDate(cal.getTimeInMillis());
}
private String makeDateString(int paev, int kuu, int aasta) {
return paev + ". " + kuuNimetus(kuu) + " " + aasta;
}
private String kuuNimetus(int kuu) {
if(kuu == 1)
return "Jaanuar";
if(kuu == 2)
return "Veebruar";
if(kuu == 3)
return "Märts";
if(kuu == 4)
return "Aprill";
if(kuu == 5)
return "Mai";
if(kuu == 6)
return "Juuni";
if(kuu == 7)
return "Juuli";
if(kuu == 8)
return "August";
if(kuu == 9)
return "September";
if(kuu == 10)
return "Oktoober";
if(kuu == 11)
return "November";
if(kuu == 12)
return "Detsember";
return "JAN";
}
public void openDatePicker(View view) {
datePickerDialog.show();
}
}
2
Answers
You can do it the same way and at the same place that you modify your Button (oops, I just assumed it was a TextArea)
Just call a method in your activity
and the method should look something like
private String kuupaev = null;
in Global Scope.String kuupaev = makeDateString(paev, kuu, aasta);
tokuupaev = makeDateString(paev, kuu, aasta);
. By removingString
declaration, it will now use the global variablekuupaev
and set the value to it.kuupaev
anywhere in the local scope includinglisamise_nupp.setOnClickListener
Here is your final code