1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình android C7 các kiểu lập trình sự kiện trên android

17 196 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 598,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Onclick in XML ii.. Inline anonymous listener iii.. Activity is listener iv.. Explicit listener class vi... Inline anonymous listener • Xây d ng ph ng th c ngay trong thân hàm đang xây d

Trang 1

CÁC KI U L P TRÌNH S KI N

TRÊN ANDROID

Ch ng 7

Lê V n H nh

levanhanhvn@gmail.com

Trang 2

N I DUNG

1 Listener

3 Các ki u l p trình s ki n trong Android

Trang 3

1 LISTENER

• Các Listener đ c s d ng đ b t 1 s ki n nào đó.

– OnKeyListener : dùng đ b t s ki n khi nh n 1 phím c a

đi n tho i.

– OnClickListener : dùng đ b t s ki n ch m vào 1 View đang hi n th trên màn hình.

• M i View đ u ph i set Listener riêng đ x lý cho s

ki n t ng tác v i view đó

• M i lo i View l i có nh ng Listener dành riêng cho

riêng mình

VD: Button: setOnKeyListener

CheckBox: setOnCheckChangedListener Button: setOnClickListener

Trang 4

2 XÂY D NG PH NG TH C CHO S KI N

• M t đ i t ng (Button, TextView…) mu n đ c giao nhi m v s lý s ki n c a ng i dùng thì đ i t ng đó

ph i hi n th c interface OnClickListener và cài đ t

ph ng th c onClick.

• Khi ng i dùng nh n lên button thì h th ng s báo cho

đ i t ng main bi t b ng cách g i ph ng th c

onClick().

• Trong Android có 6 ki u l p trình s ki n:

i Onclick in XML

ii Inline anonymous listener iii Activity is listener

iv Listener in variable

v Explicit listener class

vi View Subclassing

Trang 5

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.1 Onclick in XML

• Xây d ng ph ng th c đ c l p Gán s ki n cho view

ngay trong file layout.xml thông qua thu c tính

android:onClick

• Cách này th ng dùng khi có nhi u view (button,

EditText, TextView, …) cùng dùng chung 1 ph ng

th c.

• Cách này ph i có d ng

public void TênPh ngTh c(View v)

 trong đó: v chính là đ i t ng b tác đ ng.

android:onCLick =”OnButtonClick” cho nhi u đ i

t ng khác nhau.

Trang 6

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.1 Onclick in XML (tt)

• Ví d 1:

– B1: Vi t hàm x lý s ki n

public class MainACtivity extends Activity

{

public void btn_tong2so (View v) {

int a,b;

EditText edita=(EditText) findViewById(R.id.edtsoa); a=Integer.parseInt(edita.getText ()+””);

EditText editb=(EditText) findViewById(R.id.edtsob); b=Integer.parseInt(editb.getText ()+””);

TextView txtkq= (TextView) findViewById(R.id.txtkq); txtkq.setText((a+b )+””);

} // các hàm khác }

Trang 7

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.1 Onclick in XML (tt)

– B2: trong file layout.xml, t i tag Button, them thu c tính onClick

<!– các khai báo khác trong file layout.xml>

<Button

android:id=”@+id/btntong2so”

android:layout_width="wrap_content"

android:layout_height="wrap_content“

android:text=”T ng 2 s ”

android:onClick= ”btn_tong2so” />

<!– các khai báo khác trong file layout.xml>

Trang 8

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.1 Onclick in XML (tt)

• Ví d 2:

 Vi t mã l nh cho ph ng th c

public void OnButtonClick(View v) { String chuoiTen = et.getText().toString();

tv.setText("Xin chào " + chuoiTen);

}

 Trong file xml, thêm dòng khai báo

<Button android:id="@+id/button"

android:text="Button"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:onCLick=”OnButtonClick

</Button>

Trang 9

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.2 Inline anonymous listener

• Xây d ng ph ng th c ngay trong thân hàm đang xây d ng (inner),

thông th ng là hàm Main.

• o n implement này không gõ b ng tay mà ch c n nh n t h p phím

Ctrl + 1 ch n add unimplement method.

• Ví d 1: chuy n đ i n m âm l ch

– Vi t hàm x lý s ki n

public class MainActivity extends Activity

{ protected void onCreate(Bundle savedInstanceState)

{ Super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button btnDoi=(Button) findViewById(R.id.button1);

btnDoi.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View arg0) { //B1: l y giá tr t EditText //B2: ép giá tr nh p vào v s nguyên cho bi n X //B3: t X tính ra Can + Chi

} }

// các l nh cho các view khác có trong giao di n

}

// các hàm khác

}

Trang 10

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.2 Inline anonymous listener (tt)

• Ví d 1: chuy n đ i n m âm l ch

public class main extends Activity implements OnClickListener { TextView tv;

Button btn;

EditText et;

@Override

public void onCreate(Bundle savedInstanceState)

{ super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tv = (TextView)findViewById(R.id.tv);

et = (EditText)findViewById(R.id.et);

btn = (Button)findViewById(R.id.btn);

btn.setOnClickListener(new View.OnClickListener

{ @Override

public void onClick(View v) { String chuoiTen = et.getText().toString();

tv.setText("Xin chào " + chuoiTen);

} }) ;

}

Trang 11

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.3 Activity is listener

• Xây d ng ph ng th c đ c l p, gán ch c n ng th c hi n qua

ph ng th c setOnClickListener

• Ví d : Vi t hàm x lý s ki n

public class MainActivity extends Activity implements OnClickListener

{ Button btn;

// các khai báo bi n khác

@Override

protected void onCreate(Bundle savedInstanceState)

{ super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn=(Button) findViewById(R.id.button1);

btn.setOnClickListener(this);

// x lý các view khác }

@Override

public void onClick(View arg0)

{ // vi t l nh x lý cho s ki n onClick trên button

}

}

Trang 12

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.4 Listener in variable

– T ng t nh Activity is listener, nh ng khác ch

thay vì implement interface cho Activity thì nó l i

đ c l u tr vào m t bi n có ki u Listener trong

Activity.

– u đi m: có th chia s chung m t bi n s ki n cho

các control khác nhau.

Trang 13

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.4 Listener in variable (tt)

• Ví d :

public class LoginExampleVariableImplementation extemds Activity

{ /* các l nh khác */

OnClickListener myClickListener = new OnClickListener()

@override public void onClick (View v) { if (v==btnLogin)// n u view là btnLogin

{ // check login }

else // view là btnCancel

{ //close application }

};

/**Called when the activity is first created */

@override public void onCreate(Bundle savedInstanceState) {

Super.onCreate(savedInstanceState);

/* các l nh khác */

btnLogin.setOnClickListener(myClickListener); btnCancel.setOnClickListener(myClickListener);

}

// các hàm khác

}

Trang 14

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.5 Explicit listener class

• Tách riêng m t class đóng vai trò là class s ki n

ng d ng quá nhi u và ph c t p Nh v y, giúp d

qu n lý ch ng trình.

Trang 15

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.5 Explicit listener class (tt)

• Ví d :

public class MainActivity extends Activity

{

Button btnTieptuc,btnGiai,btnThoat;

@Override

protected void onCreate(Bundle savedInstanceState)

setContentView(R.layout.activity_main);

btnTieptuc=(Button) findViewById(R.id.btntieptuc); btnGiai=(Button) findViewById(R.id.btngiaipt);

btnThoat=(Button) findViewById(R.id.btnthoat);

btnTieptuc.setOnClickListener(new MyEvent() );

btnGiai.setOnClickListener(new MyEvent() );

btnThoat.setOnClickListener(new MyEvent() );

// các l nh khác }

{ @Override

public void onClick(View arg0)

{ // tri n khai các l nh đ x lý tùy vào button đ c ch n }

} }

Trang 16

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.6 View Subclassing

• K thu t này ít ph bi n.

• Thêm control đ ng vào màn hình lúc runtime Thêm

s ki n đ ng cho button đ ng v a phát sinh.

• Ph i override ch ng trình performClick c a chính

button control

Trang 17

3 CÁC KI U L P TRÌNH S KI N TRONG Android

3.6 View Subclassing (tt)

• Ví d :

public class MainActivity extends Activity

{ @Override

protected void onCreate(Bundle savedInstanceState)

{ super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button btn = new Button(this)

public boolean performClick() {

return false;

} };

LinearLayout layout=(LinearLayout)findViewById(R.id.linearlayout)

layout.addView(btn);

}

}

Ngày đăng: 21/12/2017, 18:59

TỪ KHÓA LIÊN QUAN

w