skip to Main Content

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


  1. 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)

    kuupaeva_nupp.setText(kuupaev);
    

    Just call a method in your activity

    useDateString(kuupaeva);
    

    and the method should look something like

     void useDateString(String dateString){
         // Do what you need to do
     }
    
    Login or Signup to reply.
    1. Declare private String kuupaev = null; in Global Scope.
    2. Change String kuupaev = makeDateString(paev, kuu, aasta); to kuupaev = makeDateString(paev, kuu, aasta);. By removing String declaration, it will now use the global variable kuupaev and set the value to it.
    3. Now you can use kuupaev anywhere in the local scope including lisamise_nupp.setOnClickListener

    Here is your final code

    package com.exotrac.loadverify;
    
    public class LisaActivity extends AppCompatActivity {
    
        EditText meeldetuletus_input, kirjeldus_input;
        Button lisamise_nupp, kuupaeva_nupp;
        private DatePickerDialog datePickerDialog;
        //Global kuupaev declaration
        private String kuupaev = null;
    
        @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;
                    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();
        }
    }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search