Từ 1 tới 1 trên tổng số 1 kết quả

Đề tài: [Android] View Pager simple tutorial

  1. #1
    Ngày gia nhập
    04 2009
    Nơi ở
    Hà Nội
    Bài viết
    733

    Angry [Android] View Pager simple tutorial

    Hi các bạn,
    Lâu rồi không vào ghé thăm 4rum, thấy box Android, Java mới mở nên chưa có nhiều ae hưởng ứng cho lắm. Nay snake xin viết một tut nho nhỏ để khơi động box lên chút, hy vọng ae hưởng ứng, đón nhận vui vẻ.
    Tut này hướng dẫn về cách thức triển khai ViewPager ( 1 view phổ biến hay được sử dụng: Slide Image, các màn hình giới thiệu,...). Điều kiện trước tiên là các bạn phải hiểu sơ qua Fragment.

    Ref Links Code:
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		device-2013-07-19-101143.png
Lần xem:	23
Size:		20.9 KB
ID:		11516

    Các bước tuần tự như sau:
    1: Add thư viện hỗ trợ Fragment.
    2: Thiết kế layout cho 3 Fragment sẽ được sử dụng ( Ở đây demo mình dùng 3).
    Thiết kế layout chứa ViewPager.
    3: Tạo class java cho 3 layout trên.
    4: Tạo class java để xử lý với ViewPager.

    1: Add thư viện hỗ trợ Fragment:
    Nếu là từ Android version 3.0 trở lên hỗ trợ sẵn Fragment thì các bạn không cần bổ sung thêm gói android-support-v4.jar . Còn trước đó thì các bạn phải add file này vào thư mục libs ( Mặc định bây giờ khi tạo project là nó có sẵn cho mình rồi ).
    2: Thiết kế layout cho 3 Fragment:
    Cái này các bạn thích thiết kế như thế nào cũng được.
    Layout cho ViewPager quản lý:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <android.support.v4.view.ViewPager
            android:id="@+id/view_pager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </LinearLayout>
    3: Tạo class Java cho 3 layout trên:
    _ Các bạn cần tạo Activity kế thừa lớp Fragment ( Nhớ import thư viện support v4 nhé, không Ctrl + Shift + O để add thư viện mà lại add của mặc định Android là hỏng đấy!!!).
    Code như sau:
    PHP Code:
    1. public class FragmentA extends Fragment implements OnClickListener {
    2.     /** TextView Forever Alone! :) . */
    3.     private TextView tvFA;
    4.     private String result;
    5.     @Override
    6.     public void onCreate(Bundle savedInstanceState) {
    7.         super.onCreate(savedInstanceState);
    8.         // get parameter.
    9.         Bundle bundle = getArguments();
    10.         result = bundle.getString("test");
    11.        
    12.     }
    13.  
    14.     @Override
    15.     public View onCreateView(LayoutInflater inflater, ViewGroup container,
    16.             Bundle savedInstanceState) {
    17.         View v = inflater.inflate(R.layout.fragmenta_layout, container, false);
    18.         tvFA = (TextView) v.findViewById(R.id.tvFA);
    19.         tvFA.setOnClickListener(this);
    20.         return v;
    21.     }
    22.  
    23.     @Override
    24.     public void onClick(View v) {
    25.         switch (v.getId()) {
    26.         case R.id.tvFA:
    27.             showToast("Forever Alone! :) " + result);
    28.             break;
    29.  
    30.         default:
    31.             break;
    32.         }
    33.     }
    34.  
    35.     /**
    36.      * Method used to show an message toast to screen.
    37.      *
    38.      * @param msg
    39.      *            Message watn to display.
    40.      */
    41.     private void showToast(String msg) {
    42.         Toast.makeText(getActivity().getBaseContext(), msg, Toast.LENGTH_SHORT)
    43.                 .show();
    44.     }
    45. }

    Ở trên mình viết code đại diện cho class thứ nhất: FragmentA.java
    Trong đó các bận cần chú ý:
    1: Kế thừa lớp Fragment.
    2: Ở method onCreate() mình có làm mẫu về việc nhận giá trị truyền từ bên ngoài vào fragment này. Cách truyền sẽ ở lớp xử lý ViewPager.
    3: Các inflate view ở onCreateView().
    Mình đã comment đầy đủ.

    4: Tạo class Java để xử lý với ViewPager.
    Ở lớp này bạn cần kế thừa lớp FragmentActivity, đây là lớp cơ sở khi bạn muốn sử dụng Fragment và Loader APIs.
    Khi sử dụng nó bạn cần phải sử dụng phương thức: getSupportFragmentManager() để có quyền truy cập vào Fragment.
    ViewPager để thực hiện được cần có Adapter , chính vì vậy chúng ta sẽ tạo ra một Adapter để quản lý dữ liệu.
    PHP Code:
    1. /**
    2.      * Adapter su dung de quan ly view pager.
    3.      *
    4.      * @author TuanLQ.
    5.      *
    6.      */
    7.     private class ViewPagerAdapter extends FragmentStatePagerAdapter {
    8.         public ViewPagerAdapter(FragmentManager fm) {
    9.             super(fm);
    10.         }
    11.  
    12.         @Override
    13.         public Fragment getItem(int position) {
    14.             // xu ly tuy vao bien position ma phan chia fragment theo cach bo
    15.             // tri cua minh.
    16.             switch (position) {
    17.             case 0:
    18.                 // Goi ra Fragment A.
    19.                 Fragment fragmentA = new FragmentA();
    20.                 Bundle bundle = new Bundle();
    21.                 bundle.putString("test", "test");
    22.                 fragmentA.setArguments(bundle);
    23.                 return fragmentA;
    24.             case 1:
    25.                 // Goi ra Fragment B.
    26.                 Fragment fragmentB = new FragmentB();
    27.                 return fragmentB;
    28.  
    29.             case 2:
    30.                 // Goi ra Fragment C.
    31.                 Fragment fragmentC = new FragmentC();
    32.                 return fragmentC;
    33.             default:
    34.                 break;
    35.             }
    36.             return null;
    37.         }
    38.  
    39.         @Override
    40.         public int getCount() {
    41.             return NUM_PAGES;
    42.         }
    43.     }

    Các phương thức chính:
    1: getCount():
    Trả về số View sẽ được hiển thị ( Ở đây của chúng ta là 3). Về sau bạn có thể tùy biến để lấy về tổng số bản ghi dữ liệu trong database, tổng số thông tin lấy từ trên server...
    2: getItem(int position):
    Sẽ trả về View với position hiện tại mà ViewPager trỏ tới.
    Ở đây mình sử dụng truyền tham số với FragmentA.
    Chi tiết:
    Link: _http://developer.android.com/training/animation/screen-slide.html

    Chắc vậy thôi nhỉ, các bạn có thể xem code, chạy code demo để hiểu rõ hơn.
    Chúc các bạn code vui vẻ!
    Attached Files Attached Files
    Hỏi một câu thì chỉ dốt trong chốc lát.Nhưng nếu không hỏi thì bạn sẽ dốt suốt đời.

Các đề tài tương tự

  1. Hướng dẫn lập trình Android với Android x86 trên Virtualbox [Tutorial dành cho máy cấu hình yếu]
    Gửi bởi Wazi Armstrong trong diễn đàn Tutorials và Thủ thuật lập trình Java
    Trả lời: 51
    Bài viết cuối: 26-07-2016, 05:03 PM
  2. [Android] Screen Lock tutorial ( Sử dụng quyền admin của device )
    Gửi bởi snake_programmer trong diễn đàn Tutorials và Thủ thuật lập trình Java
    Trả lời: 2
    Bài viết cuối: 05-09-2013, 09:47 PM
  3. Graphic Cách tạo giao diện như một grid pager (có hình)
    Gửi bởi markpq trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 18-06-2012, 01:40 PM
  4. Dự án Sky View Cầu Giấy, Chung cư Sky View,căn hộ sky view
    Gửi bởi ephat_tt86 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 22-10-2011, 02:13 PM
  5. xin một simple tutorial về activex control
    Gửi bởi vitcon trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 04-04-2008, 03:52 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn