Lập trình Android cơ bản: xử lý chuyển đổi màn hình

Thảo luận trong 'Điện thoại, viễn thông' bắt đầu bởi g08ct, 4/9/12.

  1. g08ct New Member

    g08ct

    Tham gia ngày:
    15/8/12
    Bài viết:
    1,116
    Đã được thích:
    55
    Điểm thành tích:
    0
    Giới tính:
    Nam
    Lập trình Android cơ bản: xử lý chuyển đổi màn hình
    Lập trình Android ta thường phải xử lý trên màn hình nhỏ nên việc thao tác trên nhiều màn hình là việc không thể tránh khỏi. Như vậy, việc xử lý thao tác như chuyển đổi màn hình là cần thiết. Ta có thể thao tác trên nhiều màn hình có thể thực hiện theo các cách sau:
    1. Cách 1. Tạo Tabbar và mỗi tab sẽ là một màn hình. Tuy nhiên, xử lý Tab sẽ có nhiều hạn chế bởi nó sẽ không lấy được các sự kiện giữa các màn hình.
    2. Cách 2. Chuyển đổi màn hình sử dụng Intern.

    Trong bài này, tôi sẽ trình bày cách sử dụng Intern để chuyển đổi màn hình.
    Bài này sẽ đơn giản với thao tác sau: Nội dung trong TextField của mainScreen sẽ được hiển thị trong TextView của subScreen; và ngược lại, TextField trong subScreen sẽ được hiển thị trên TextField của màn hình mainScreen.
    Vậy, cấu trúc của chương trình sẽ gồm 2 Button, 2 TextField, và 1 TextView.
    Tạo projject mới trên Eclipse và đặt tên là ScreenSwitchSample. Code các file như sau;
    ScreenSwitchSampleAcrivity.java
    Mã:
    Mã:
    public class ScreenSwitchSampleActivity extends Activity {        //Code goi subScreen          private static final int SHOW_SUB_FORM = 0;                // mainScreen EditText01        private EditText edittext;                // mainScreen Button01        private Button btn;                /** Called when the activity is first created. */        @Override        public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.main);                        // mainScreen  tao doi tuong Button01            btn = (Button) findViewById(R.id.Button01);                        // mainScreen    tao doi tuong EditText01            edittext = (EditText) findViewById(R.id.EditText01);              // Button01    set chuc nang cho click            btn.setOnClickListener(new View.OnClickListener(){                  @Override                public void onClick(View v) {                    // Button01    tao su kien click                    Button01_onClick();                }                            });        }                // Button01 xu ly su kien onClick        private void Button01_onClick() {            // Tao Intern de ket noi giua mainScreen va subScreen            Intent intent = new Intent(ScreenSwitchSampleActivity.this,subScreen.class);                        // mainScreen lay du lieu trong EditText01            CharSequence text = edittext.getText();                        // subScreen gui du lieu cua EditText01 den subScreen qua Intern            intent.putExtra("MAIN_FORM_TEXT", text);                        // khoi dong subScreen            startActivityForResult(intent,SHOW_SUB_FORM);        }                // Method dung de goi mainScreen khi duoc goi        @Override        protected void onActivityResult(int requestCode, int resultCode,Intent data){            if (requestCode == SHOW_SUB_FORM) {                if (resultCode == RESULT_OK){                    edittext.setText(data.getCharSequenceExtra("SUB_FORM_TEXT"));                }            }        } }
    subScreen.java
    Mã:
    public class subScreen extends Activity{    private Button btn;    private EditText edittext;      /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                  setContentView(R.layout.sub);                  // subScreen      tao Button02          btn = (Button) findViewById(R.id.Button02);                  edittext = (EditText) findViewById(R.id.EditText02);                  btn.setOnClickListener(new View.OnClickListener(){              @Override            public void onClick(View v) {                // Button02    dinh nghia su kien onClick                Button02_onClick();            }                      });                  // Lay doi tuong Intern khi duoc gui den tu mainScreen        Bundle extras = getIntent().getExtras();                  if (extras != null){            // subScreen  tao doi tuong TextView01            TextView textView = (TextView) findViewById(R.id.TextView02);                          // Lay du lieu trong EditText01 de setting cho TextView02 tren subScreen            textView.setText(extras.getCharSequence("MAIN_FORM_TEXT"));        }              }      // Button02 dinh nghia su kien onClick    private void Button02_onClick(){        // Tao intern        Intent intent = new Intent();                  // Lay du lieu text de gui den mainScreen        CharSequence text = edittext.getText();                  // Gui du lieu text den intern cua mainScreen        intent.putExtra("SUB_FORM_TEXT", text);                  // Gui code RESULT_OK cho intern cua mainScreen        setResult(RESULT_OK, intent);                  // ket thuc subScreen        finish();    }  }
    
    Thêm activity trong AndroidManifest.xml

    Mã:
     
    <activity android:name="subScreen">        </activity>
    Kết quả chạy như sau:


    Down toan bo code tai day

    TÀI LIỆU THAM KHẢO
    1. http://gallop.ddo.jp/blog/airia/2009/06/android-1.html

    ThanhTM
     

    Các file đính kèm:

    • Xl1.png
      Xl1.png
      Kích thước:
      9.7 KB
      Đọc:
      33
    • xl2.png
      xl2.png
      Kích thước:
      50.5 KB
      Đọc:
      32
    • xl3.png
      xl3.png
      Kích thước:
      52.8 KB
      Đọc:
      32
    • xl4.png
      xl4.png
      Kích thước:
      33.7 KB
      Đọc:
      32
    Đang tải...
  2. lamchihieuvnn New Member

    lamchihieuvnn

    Tham gia ngày:
    21/3/13
    Bài viết:
    19
    Đã được thích:
    0
    Điểm thành tích:
    0
    Giới tính:
    Nam
    e down code ko dc mấy anh ơi...xem fix lại dùm e
     
  3. Nem Moderator

    Nem

    Tham gia ngày:
    23/2/13
    Bài viết:
    160
    Đã được thích:
    133
    Điểm thành tích:
    0
    Giới tính:
    Nam
    ban copy link nhé chứ đừng click trực tiếp
     
    2 people like this.
  4. Zasd2 New Member

    Zasd2

    Tham gia ngày:
    24/9/12
    Bài viết:
    112
    Đã được thích:
    84
    Điểm thành tích:
    0
    đã fix lại link rồi nhé
     
    2 people like this.
  5. tong90.it New Member

    tong90.it

    Tham gia ngày:
    8/1/13
    Bài viết:
    531
    Đã được thích:
    867
    Điểm thành tích:
    0
    Giới tính:
    Nam
    Nghề nghiệp:
    Lap Trinh Vien
    Nơi ở:
    TP Hue
    - Các bạn chú ý khi khởi tạo 1 activity mới chồng lên 1 activity cũ, chỉ có thể chồng lên tối đa là 10 activity thôi nhé, nếu quá 10 các activity cũ nhất sẽ bị android hủy đi.
    - Nếu mới bắt đầu lập trình với Android, có một cách hay nhất mà Long từng sử dụng là chỉ sử dụng 1 activity duy nhất trong ứng dụng thôi, còn lại mọi thông tin dữ liệu sẽ dùng đối tượng Intent để truyền dữ liệu tới activity mới. Như vậy có nghĩa là khi gọi 1 activity mới lên thì ta đồng thời phải thực hiện finish() activity hiện tại tránh trường hợp vượt quá 10 activity như trên nhé ^^!
     

Chia sẻ trang này