2014年12月10日 星期三

[Android] 自定義 Dialog

彈出畫面:

heart_rate__calendar.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"         
    android:layout_width="fill_parent"                         
    android:layout_height="match_parent"                       
    android:scrollbarStyle="outsideInset" >                       
                                        
    <LinearLayout                                 
        android:layout_width="match_parent"                       
        android:layout_height="match_parent"                      
        android:background="#FFFFFFFF"                       
        android:gravity="center"                            
        android:orientation="vertical" >                         
                                        
        <TextView                                 
            android:id="@+id/calendar_month"                      
            android:layout_width="match_parent"                     
            android:layout_height="0dp"                        
            android:layout_weight="1"                         
            android:gravity="center"                          
            android:text="NOV"                            
            android:textColor="#FF33B5E5"                       
            android:textSize="30sp" />                          
                                       
        <TextView                                 
            android:id="@+id/calendar_day"                       
            android:layout_width="match_parent"                     
            android:layout_height="0dp"                        
            android:layout_weight="4"                         
            android:autoText="true"                          
            android:gravity="center"                          
            android:text="37"                             
            android:textColor="#FF33B5E5"                       
            android:textSize="120sp" />                         
                                        
                                               <CalendarView                                 
            android:id="@+id/calendarChose"                      
            android:layout_width="fill_parent"                      
            android:layout_height="0dp"                        
            android:layout_weight="5"                         
            android:accessibilityLiveRegion="assertive"                  
            android:descendantFocusability="blocksDescendants"              
            android:focusable="true"                         
            android:focusableInTouchMode="true"                    
            android:importantForAccessibility="auto"                   
            android:labelFor="@integer/abc_max_action_buttons"              
            android:layoutMode="opticalBounds"                     
            android:nextFocusForward="@anim/slide_in_right" />              
                                       
        <Button                                 
            android:id="@+id/calendar_done"                      
            android:layout_width="match_parent"                    
            android:layout_height="0dp"                        
            android:layout_weight="1"                        
                                             
            android:background="#FFFFFFFF"                     
            android:text="Done" />                          
    </LinearLayout>                               
</RelativeLayout>                                
                                                                                                    

heart_rate_maina.class

private View dialogViewCalendar, view;                     
protected AlertDialog dialogCalendar;                      
private Button btn1;                             
public class heart_rate_main extends Fragment{                  
@Override                                
public View onCreateView(LayoutInflater inflater, ViewGroup container,       
Bundle savedInstanceState) {                        
                view = inflater.inflate(R.layout.heart_rate_main, container, false);      
                btn1 = (Button)view.findViewById(R.id.btn1);             
                btn.setOnClickListener(btn1_Click);                  
LayoutInflater factory = LayoutInflater.from(getActivity());        
dialogViewCalendar = factory.inflate(R.layout.heart_rate_calendar, null);   
dialogCalendar = new AlertDialog.Builder(getActivity()).create();      
dialogCalendar.setView(dialogViewCalendar);              
                return view                            
}                                    
                                     
private String[] MonthEng = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

private void dialogCalendarView(){
((TextView)dialogViewCalendar.findViewById(R.id.calendar_month)).setText(new SimpleDateFormat("MMM", Locale.US).format(new Date().getTime()));
((TextView)dialogViewCalendar.findViewById(R.id.calendar_day)).setText(new SimpleDateFormat("dd").format(new Date().getTime()));

((CalendarView)dialogViewCalendar.findViewById(R.id.calendarChose)).setOnDateChangeListener(new OnDateChangeListener() {

@Override
public void onSelectedDayChange(CalendarView view, int year, int month,
int dayOfMonth) {
// TODO Auto-generated method stub

((TextView)dialogViewCalendar.findViewById(R.id.calendar_month)).setText(MonthEng[month]);
((TextView)dialogViewCalendar.findViewById(R.id.calendar_day)).setText(String.valueOf(dayOfMonth));
}
});

((Button)dialogViewCalendar.findViewById(R.id.calendar_done)).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bundle b = new Bundle();
b.putString("year", new SimpleDateFormat("yyyy").format(((CalendarView)dialogViewCalendar.findViewById(R.id.calendarChose)).getDate()));
b.putString("month", ((TextView)dialogViewCalendar.findViewById(R.id.calendar_month)).getText().toString());
b.putString("day", ((TextView)dialogViewCalendar.findViewById(R.id.calendar_day)).getText().toString());
b.putSerializable("heart_rate_detail_list.class", heart_rate_detail_list.class);
changeFragment(new heart_rate_detail_list(), b);
dialogCalendar.dismiss();
}
});
}

private LinearLayout.OnClickListener btn1_Click = new OnClickListener(){        
       @Override
        public void onClick(View v){
                   dialogCalendar.show();
        }
}



參考文獻:http://iamshiao.blogspot.tw/2010/12/androiddialog.html

沒有留言:

張貼留言