Học lập trình android - picker

Thảo luận trong 'Tư vấn - Du học - Tuyển sinh' bắt đầu bởi t11nguyen, 3 Tháng bảy 2017.

  1. t11nguyen

    t11nguyen Member Thành viên

    Bài viết:
    141
    Đã được thích:
    0
    Diendanraovataz.net - Diễn đàn rao vặt - Đăng tin mua bán - Quảng cáo miễn phí - Hiệu quả - Trong phần này chúng ta sẽ Đánh giá về Picker. Picker là lớp View cho phép chúng ta chọn 1 giá trị nào chậm tiến độ trong 1 tập các giá trị cho trước, có 2 chiếc giá trị là số và giờ/ngày tháng.

    NumberPicker
    NumberPicker cho phép chúng ta chọn 1 giá trị số trong 1 tập giá trị cho trước.

    main.xml


    android:eek:rientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    android:layout_width="wrap_content"
    android:text="0" android:textSize="30sp" />

    Trong file layout chúng ta khai báo thẻ NumberPicker và thẻ TextView, TextView sẽ hiển thị giá trị đang được chọn trong NumberPicker.

    MainActivity.java

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.NumberPicker;
    import android.widget.TextView;
    import android.widget.NumberPicker.OnValueChangeListener;

    public class MainActivity extends Activity

    private TextView tv;

    @Override
    public void onCreate(Bundle savedInstanceState)

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);



    NumberPicker np = (NumberPicker) findViewById(R.id.npId);

    np.setOnValueChangedListener(new OnValueChangeListener()


    int newVal)

    tv.setText(String.valueOf(newVal));

    );

    np.setMaxValue(100);
    np.setMinValue(0);


    NumberPicker hiển thị giá trị và 2 nút cộng trừ để nâng cao giảm giá trị.


    np.setOnValueChangedListener(new OnValueChangeListener()

    public void onValueChange(NumberPicker picker, int oldVal,
    int newVal)

    tv.setText(String.valueOf(newVal));

    );
    khi chúng ta click vào 2 nút cộng trừ thì NumberPicker sẽ giải phóng sự kiện, chúng ta bắt sự kiện này bằng lớp OnValueChangeListener. Ở đoạn code trên chúng ta gắn 1 đối tượng listener vào picker và dùng phương thức onValueChange(), phương thức này sẽ được gọi khi chúng ta click vào 2 nút cộng trừ, tham số của phương thức này là đối tượng picker đã giải phóng sự kiện, giá trị mới sau khi click nút cộng/trừ và giá trị cũ trước khi click nút cộng/trừ.

    1
    np.setMaxValue(100);
    np.setMinValue(0);
    2 chiếc code trên thiết lập khoảng giá trị cho NumberPicker là trong khoảng 0 đến 100.

    - Bài tập này bạn sẽ được học về Time Selection. 1 số bài tập trước chậm tiến độ Tôi cũng đã dùng nó rồi, nhưng trong bài tập này Tôi muốn giải thích nó rõ ràng hơn.

    - có nhiều chiếc Time Selection: AnalogClock, Chronometor, DatePickerDialog, TimePickerDialog. Nhưng Tôi chỉ giới thiệu 2 control cuối mà thôi, các control khác Anh chị tự Đánh giá thêm trên mạng:

    Mới học lập trình, Anh chị cần Đánh giá về học html cơ bản


    - Hình bên trái là DatePickerDialog (dùng để thiết lập ngày tháng năm), hình bên phải là TimePickerDialog( dùng để thiết lập giờ phút).

    - Theo Tôi thì chúng ta không nên kéo thả các control này ra màn hình vì nó chiếm hết không gian của các control khác, có lại màn hình điện thoại quá nhỏ nên nó sẽ không đáp ứng tí nào khi bạn cố tình kéo thả nó ra. bởi vậy Tôi khuyên bạn nên viết code động, cho 1 Button để người dùng chọn ngày tháng hay giờ giấc, khi nhấn vào nó thì mới hiển thị các dialog tương ứng này lên.

    - Tôi sẽ có 1 thí dụ cụ thể để thực hành về 2 control này, bạn hãy chú ý theo dõi và thực hành lại thật phải chăng.

    Yêu cầu áp dụng như sau:

    - Viết chương trình điều hành chỉ tiêu hoàn tất công tác hàng tuần: Lý do chúng ta khiến việc không có quy củ, không nhất quán, gặp đâu khiến chậm tiến độ, đang khiến việc này thấy việc kia sảy ra lại dancing qua việc chậm tiến độ khiến để dở công tác cũ chưa xong, không theo quy trình định sẵn dẫn đến chấm dứt 1 ngày mà chung cuộc không hoàn tất được việc gì cả.

    - kiểu dáng giao diện như hình bên dưới và thực hành 1 số chức năng:



    1. Khi chọn nút Date sẽ hiển thị DatePickerDialog – cập nhật Ngày hoàn tất
    2. Khi chọn nút Time sẽ hiển thị TimePickerDialog – cập nhật giờ hoàn tất
    3. Khi chọn nút Thêm công tác (Thêm CV), chương trình sẽ cập nhập vào ListView bên dưới màn hình
    4. Khi nhấn vào phần tử nào thì hiển thị chi tiết Nội Dung công tác phải hoàn tất
    5. Khi nhấn thật lâu vào phần tử nào trên ListView thì xóa phần tử (công việc) chậm tiến độ.
    - Bài tập này Tôi đưa ra là tiền đề để khiến phần Android Service cụ thể là Alarm Manager (Khi nào đến phần chậm tiến độ Tôi sẽ đề cập lại bài này). Bạn cứ hình dung phần mềm này nó giống như chương trình báo thức chậm tiến độ bạn. đến giờ là nó Beeng ! Beeng! la làng lên để đề cập nhở Anh chị. Nhưng hiện giờ bạn hãy quên điều chậm tiến độ đi vì chúng ta cần phải đi trong khoảng từ và phải hiểu thật thấu đáo các thành phần căn bản trước đã, giờ bạn chỉ cần thao tác được 5 buộc phải của Tôi nêu bên trên là đã đạt rồi.

    TimePicker
    TimePicker thì hiển thị giá trị giờ, TimePicker có 2 chế độ hiển thị là hiển thị theo dạng 24h hoặc dùng kí hiệu AM/PM. bên cạnh đó còn có lớp DatePicker là chọn ngày tháng.

    main.xml


    android:eek:rientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >



    android:layout_marginLeft="5dp"
    android:textSize="30sp" />


    Trong file main.xml chúng ta kiểu dáng 1 TimePicker và 1 TextView để hiển thị giá trị của TimePicker chậm tiến độ.

    MainActivity.java




    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TimePicker;
    import android.widget.TextView;
    import android.widget.TimePicker.OnTimeChangedListener;

    public class MainActivity extends Activity

    Lớp TimePicker lắng nghe sự kiện bằng lớp OnTimeChangedListener có phương thức onTimeChanged().


    tp.setOnTimeChangedListener(new OnTimeChangedListener()

    public void onTimeChanged(TimePicker view, int hour,
    int minute)

    StringBuilder tm = new StringBuilder();
    tm.append(hour + " h " + minute + " m ");
    tv.setText(tm);

    );
    Bên trong phương thức onTimeChanged() chúng ta tạo 1 chuỗi trong khoảng giá trị giờ và phút được gửi đến, sau chậm tiến độ gán khiến text cho TextView.



    bên cạnh đó trước chậm tiến độ chúng ta cũng dùng chính lớp TimePicker này để lấy giờ hiện giờ của hệ điều hành và gán vào TextView trước.
     
    Cùng đọc NỘI QUY DIỄN ĐÀN và ý thức thực hiện cùng BQT xây dựng cộng đồng thêm vững mạnh bạn nhé
    ***** Xin đừng Spam vì một diễn đàn trong sạch *****
Địa chỉ thu mua do cu ho chi minh uy tín, Official Premium Account Reseller Premiumkeystore.com Easily, Instant delivery & Trusted.

Chia sẻ trang này