2014-01-21 3 views
2

탐색 서랍으로 응용 프로그램을 개발 중입니다. 탐색 목록에서 일부 항목을 클릭하면 조각을 사용하는 인터페이스가 표시됩니다. 내 클릭 항목도 제대로 작동합니다. 나는 날짜 선택 도구를 보여주기 위해 이미지 버튼을 사용했다. 나는 아래 코드를 사용한다. 하지만 데이터 선택 대화 상자에서 날짜를 설정할 때. 지정된 텍스트 뷰는 변경되지 않습니다. PARAMS와 생성자를 만들기조각 선택 클래스가있는 날짜 선택 도구

public class FindPeopleFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { 

    public int year; 
    public int month; 
    public int day; 
    static final int DATE_PICKER_ID = 1111; 
    TextView curentDate; 




public FindPeopleFragment(TextView date){ 
    curentDate = date; 
} 
public FindPeopleFragment(){ 

} 



@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.schedule, container, false); 
    ImageButton date = (ImageButton) rootView.findViewById(R.id.btnDate); 
    curentDate = (TextView) rootView.findViewById(R.id.txtCurrentDate); 

    /*final Calendar c = Calendar.getInstance(); 
    year = c.get(Calendar.YEAR); 
    month = c.get(Calendar.MONTH); 
    day = c.get(Calendar.DAY_OF_MONTH); 

    curentDate.setText(new StringBuilder() 
    // Month is 0 based, just add 1 
    .append(month + 1).append("-").append(day).append("-") 
    .append(year).append(" "));*/ 


    date.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      //Toast.makeText(getActivity(), "clicked", Toast.LENGTH_LONG).show(); 
      //showDialog(DATE_PICKER_ID); 
      showDatePickerDialog(v); 
     } 
    }); 
    return rootView; 


} 

public Dialog onCreateDialog(Bundle savedInstanceState) { 


    final Calendar c = Calendar.getInstance(); 
    year = c.get(Calendar.YEAR); 
    month = c.get(Calendar.MONTH); 
    day = c.get(Calendar.DAY_OF_MONTH); 
    return new DatePickerDialog(getActivity(), datePickerListener, year, month, day); 

} 
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener(){ 
public void onDateSet(DatePicker view, int syear, int smonth, int sday) { 
    // Do something with the date chosen by the user 
    month = smonth; 
    day = sday; 
    year = syear; 
    curentDate.setText(String.valueOf(month + 1) + "/" + String.valueOf(day) + "/" + String.valueOf(year)); 

} 

}; 

public void showDatePickerDialog(View v) { 
    DialogFragment newFragment = new DatePickerFragment(); 
    newFragment.show(getFragmentManager(), "datePicker"); 
} 
@Override 
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { 
    // TODO Auto-generated method stub 

} 

}

답변

2

나쁜 생각입니다 .. 일부 코드 샘플로 나를 인도 해주십시오.

액티비티 콜백으로 인터페이스를 사용하고 선택한 날짜를 액티비티 또는 framgent에서 텍스트 뷰로 설정합니다. DialogFragment에서 활동에

How to transfer the formatted date string from my DatePickerFragment?

는 활동

Send data from activity to fragment in android

DialogFragment를 단편 -> 작업 -> 조각

http://developer.android.com/training/basics/fragments/communicating.html

+0

시간을 나는 여기서 활동을 사용하지 않는다. 사용자가 탐색 목록의 항목을 누르면이 단편 클래스 만 표시됩니다. 어떻게하면 활동이없는 부분 만이 작업을 수행 할 수 있습니까? –

+0

@ GishanthaDarshana 당신은 활동이없는 조각을 가질 수 없습니다. 조각은 활동에 의해 호스팅됩니다. 그래서 활동에 날짜를 알린다. 그 다음 단편화하는 활동. MainActivity는 framgent를 호스팅하는 것입니다. framgents를 추가하거나 대체하는 컨테이너가 있습니다. – Raghunandan

+0

당신은 그걸 어떻게 할 수 있는지 말해 주시겠습니까? 나는 파편들에 대해 전혀 모른다. .. 내가 이해 한 것은 조각 클래스가 나의 레이아웃을 부풀게하는 것이다. 조각에서 클릭 이벤트를 처리 할 수 ​​있습니다. 나는 한 가지 단편으로 특정 일을했다. 단추가있을 때 눌렀을 때 일부 웹 서비스를 호출하고 일부 작업을 수행합니다. 더 자세히 설명해 주시겠습니까 –