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


} 

나는 그것이 텍스트 뷰에 표시되는 날짜를 설정 처음으로하지만, 초 시간 나는 다른 TextView2 첫 번째 TextView에서 같은 날짜를 얻을 날짜를 설정합니다.

누구나 아는 이유는 무엇입니까? 이 문제를 해결하는 방법?

1

이런 일이 있어서는 안됩니다. 나는 당신이 당신의 코드에 오타가 있다고 생각한다. 전체 코드를 게시하면 오타를 찾을 수 있습니다.

게다가 당신이 필요하지 않습니다 :

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

단지로 교체 :`에서

if (getTag()=="datePicker1")

관련 문제