Home > Net >  How to get value/string from one method to another?
How to get value/string from one method to another?

Time:01-20

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();
    }
}

CodePudding user response:

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
 }

CodePudding user response:

  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();
    }
}
  •  Tags:  
  • Related