почему значение datepicker не может измениться при передаче значения другому виду деятельности - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть создатель даты, но когда я передаю значение в другое действие, значение другого действия не может измениться, хотя я изменяю значение в первом действии.как решить это?

я хочу передать значение из ListInstrumen.java в ListPengecekan.java вот мой код

ListInstrumen.java

 mDisplayDate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Calendar cal = Calendar.getInstance();
            final int year = cal.get(Calendar.YEAR);
            final int month = cal.get(Calendar.MONTH);
            final int day = cal.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog dialog = new DatePickerDialog(ListInstrumen.this,android.R.style.Theme_Holo_InputMethod,
                    mDateSetListener,
                    year,month,day);
            dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            dialog.show();

            lvInstrumen.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    int idInstrumen = (int) view.getTag();
                    Intent j = new Intent (ListInstrumen.this, ListPengecekan.class);
                    j.putExtra("day",day);
                    j.putExtra("month",month);
                    j.putExtra("year",year);
                    j.putExtra("id", String.valueOf(id));
                    j.putExtra("ins", ((TextView) view.findViewById(R.id.tv_instrumenn)).getText().toString());
                    startActivity(j);


                }
            });
        }
    });


    mDateSetListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int month, int day) {
            month = month + 1;
            Log.d(TAG, "onDateSet: yyy/mm/dd: " + year + "-" + month  + "-" + day);

            String date = year + "-" + month  + "-" + day;
            mDisplayDate.setText(date);


        }
    };

ListPengecekan.java

    int day = getIntent().getIntExtra("day",0);
    int month = getIntent().getIntExtra("month",0);
    int year = getIntent().getIntExtra("year",0);
    TextView tgl = (TextView)findViewById(R.id.tanggall);

    month = month + 1;
    Log.d(TAG, "onDateSet: yyy/mm/dd: " + year + "-" + month  + "-" + day);
    final String date = year + "-" + month  + "-" + day;
    setContentView(R.layout.activity_pengecekan);
    tgl.setText(date);

1 Ответ

0 голосов
/ 25 апреля 2018

Поскольку вы передаете старое значение, не передавая после выбранного кода изменения даты, как это .. возьмите эту переменную как локальную на уровне класса ..

    private int sday,smonth,syear;
    mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker datePicker, int year, int month, int day) {
        month = month + 1;
        Log.d(TAG, "onDateSet: yyy/mm/dd: " + year + "-" + month  + "-" + day);
        sday=day;
        syear=year;
        smonth=month;
        String date = year + "-" + month  + "-" + day;
        mDisplayDate.setText(date);


    }

, затем измените код намерения ..

Intent j = new Intent (ListInstrumen.this, ListPengecekan.class);
                j.putExtra("day",sday);
                j.putExtra("month",smonth);
                j.putExtra("year",syear);
                j.putExtra("id", String.valueOf(id));
                j.putExtra("ins", ((TextView) view.findViewById(R.id.tv_instrumenn)).getText().toString());
                startActivity(j);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...