2014-11-26 2 views
0

Я пытаюсь открыть два разных диалоговых окна выбора даты и установить выбранные даты как текст в textView рядом с каждой кнопкой. Я не уверен, как я могу отличить их от звонков, я попробовал тег, но во время отладки я видел, что тег Views имеет значение null. это то, что я сделал до сих пор:Использование Android DatePickerFragment с двумя разными кнопками

DatePickerFragment.java:

public void onDateSet(DatePicker view, int year, int monthOfYear, 
     int dayOfMonth) { 
    if(view.getTag() == "datePicker1") 
    { 
     ((TextView)getActivity().findViewById(R.id.editText1)). 
     setText(dayOfMonth + "/" + monthOfYear + "/" + year); 
    } 
    else 
    { 
     if(view.getTag() == "datePicker2") 
     { 
      ((TextView)getActivity().findViewById(R.id.editText2)). 
      setText(dayOfMonth + "/" + monthOfYear + "/" + year); 
     } 
    } 

} 

MainActivity.java:

btn1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      DialogFragment newFragment = new DatePickerFragment(); 
      newFragment.show(getFragmentManager(), "datePicker1"); 
     } 

    }); 



    btn2.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      DialogFragment newFragment = new DatePickerFragment(); 
      newFragment.show(getFragmentManager(), "datePicker2"); 
     } 
    }); 

Пожалуйста, помогите!

+0

В '' MainActivity' поместить публичный статический строковый тег, 'когда кнопка один клик 'TAG =" datePicker1 "' для другой кнопки 'TAG =" datePicker2 "'. В 'DatePickerFragment' используйте' MainActivity.TAG', теперь сравниваем строку. – Yugesh

ответ

0

Я нашел частичное решение. Видимо Тэг в шоу() для фрагмента, а не для зрения, так это то, что я сделал:

@Override 
public void onDateSet(DatePicker view, int year, int monthOfYear, 
     int dayOfMonth) { 
    if(DatePickerFragment.this.getTag() == "datePicker1"); 
    { 
     ((TextView)getActivity().findViewById(R.id.editText1)). 
     setText(dayOfMonth + "/" + monthOfYear + "/" + year); 
    } 

    if(DatePickerFragment.this.getTag() == "datePicker2") 
    { 
     ((TextView)getActivity().findViewById(R.id.editText2)). 
     setText(dayOfMonth + "/" + monthOfYear + "/" + year); 
    } 


} 

Теперь первый раз я установить дату он появляется на TextView, но для второго я установил дату (с другой кнопкой). Я получаю ту же дату в TextView2, что и в первом TextView.

любой знает почему? Как это исправить?

1

Этого не должно было быть. Я думаю, у вас есть опечатка в вашем коде. Отправьте весь свой код, и мы сможем найти опечатку.

Плюс вам не нужно это:

if(DatePickerFragment.this.getTag() == "datePicker1");

Заменить его просто:

if (getTag()=="datePicker1")

Смежные вопросы