header-object

Sự kiện trên giao diện

Tạo ứng dụng với các thông tin như sau:


Project Name: GiaoDien2
Build Target: Android 2.3.3
Application Name: GiaoDien2
PackageName: hoangNguyen.AndroidCourse.GiaoDien2
Create Activity: GiaoDien2Activity

Tìm 1 hình ảnh bất kì có phần mở rộng là .jpg hoặc .png. Chép hình ảnh đó vào thư mục res/drawable-mdpi. Trong trường hợp này tôi sẽ sử dụng tập tin có tên oto.jpg.
Về giao diện, chúng ta sẽ sử dụng 1 LinearLayout chứa một ImageView, rồi canh ImageView vào chính giữa của LinearLayout. Viết mã cho tập tin res/layout/main.xml như sau:


<?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:background="#ffffff"
android:gravity="center">

    <ImageView
android:id="@+id/imageView1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:src="@drawable/oto"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:background="#ff0000"/>
</LinearLayout>

Khởi chạy ứng dụng trên Emulator, kết quả hiển thị như sau:
Bây giờ, chúng ta sẽ viết mã bắt sự kiện người dùng click vào tấm hình chiếc ôtô. Trong trường hợp này là click vào ImageView có thuộc tính id là imageView1. Việc này thực hiện trong phương thức onCreate của lớp GiaoDien2Activity. Chúng ta sẽ lần lượt thực hiện các thao tác sau.

Tạo một đối tượng thuộc lớp OnClickListener và override phương thức onClick của nó như sau:
Hiểu một cách đơn giản, ở đây chúng ta đang tạo ra một đối tượng nghe ngóng xem nếu người dùng click vào phần tử View v nào đó thì sẽ kích hoạt phương thức onClick(View v). Muốn thực hiện điều gì trên đối tượng bị click này thì chúng ta sẽ can thiệp vào tham số v của phương thức onClick vừa nói. Như đã đề cập, chúng ta sẽ thiết lập để ImageView rộng và cao đúng bằng kích thước màn hình thiết bị.

Chúng ta sẽ override phương thức onClick như sau:


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ImageView iv = (ImageView)v;
LinearLayout ll = (LinearLayout) iv.getParent();

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ll.getWidth(),ll.getHeight());
iv.setLayoutParams(lp);
}

Việc tiếp theo chúng ta sẽ lấy về phần tử ImageView có id là imageView1. Để thực hiện điều này, chúng ta sẽ sử dụng phương thức findViewById như sau:


ImageView iv = (ImageView) findViewById(R.id.imageView1);

Phương thức findViewById sẽ nhận vào tham số là id của phần tử và trả về đối tượng tương ứng.
Sau đó chúng ta sẽ thiết lập đối tượng OnClickListener đã tạo cho đối tượng mà chúng ta đã lấy được như sau:


iv.setOnClickListener(imageClick);

Chạy ứng dụng trên Emulator, click vào hình và kiểm tra kết quả thu được.

2/ Các sự kiện khác

Ngoài Interface đã xét là OnClickListener, lớp View còn cung cấp các Interface khác để chúng ta implement trong trường hợp cần bắt các sự kiện, danh sách các interface này được liệt kê sau

  1. OnCreateContextMenuListener
  2. OnCreateContextMenuListener
  3. OnFocusChangeListener
  4. OnKeyListener
  5. OnLongClickListener
  6. OnTouchListener

Về cách thức xử lý cũng gần tương tự như trên. Các bạn hãy tự thực hiện trong các ứng dụng của mình để hiểu rõ hơn.

Bình luận  

 
0 #79 Hortense Thứ 5-10-17 07:22
We stumbled over here from a different website and thought I may as well check
things out. I like what I see so now i'm following you.

Look forward to finding out about your web page again.

my site ... line features: http://bbs.vernee.cc/home.php?mod=space&uid=259847&do=profile
Trích dẫn
 
 
0 #78 Gonzalo Thứ 4-10-17 06:48
I read this paragraph completely on the topic of the resemblance
of newest and preceding technologies, it's remarkable article.


my blog; hair styling
tools: http://tf2.Gudstuffzinc.us/mediawiki/index.php/Infusium_23_Leave_Of_Absence_In_Therapy_For_Frizzy_Hair
Trích dẫn
 
 
0 #77 Normand Thứ 5-10-17 14:14
Hi, after reading this amazing piece of writing i am too cheerful to share my experience here with friends.


Feel free to visit my webpage ... unblocked minesweeper: http://dbestunblockedgames.com/minesweeper/
Trích dẫn
 
 
0 #76 Robt Thứ 5-09-17 17:53
This is my first time pay a quick visit at here and i am
truly happy to read everthing at single place.

my website ... ecu hardware book: https://Www.Electronicrepairegypt.com/ecu-hw-repair-book.html
Trích dẫn
 
 
0 #75 Alecia Thứ 3-09-17 08:32
Whiⅼe pearls cannot be intentionalⅼy formed into certain shɑpes, theу ϲertainly form
into a numЬeг of shapes by themselves, incluⅾing round, semi-round, button, dгop, pear, oval, baroque, and
circⅼed. Princess Cut: Princess Cut diamߋnds have pointed corners and they
arе traditionally squɑre in shapе. If you make payment for any attention to fashion jewelry trends you
know that brown diamonds have discovered their way
into the hearts of countless from fashion diamond jewelry: http://stores.ebay.com/DIAMOND-SCENE designers, to
celebritieѕ to the average consᥙmer.
Trích dẫn
 
 
0 #74 Angus Thứ 3-09-17 03:39
Greetings! Very hellpful advice in this particular post!
It's thhe little changes which will make the most significant changes.
Thanks for sharing!

Visit my webpage ecu Electronics: https://Www.electronicrepairegypt.com/ecu-hw-repair-book.html
Trích dẫn
 
 
0 #73 Nicolas Thứ 5-09-17 09:07
STECANELA, Nilda; FERREIRA, Pedro Moura.

Aqui é meu weblog ... sexo ao vivo na webcam (Beatriz: http://sexonanet.net)
Trích dẫn
 
 
0 #72 Brittny Thứ 2-08-17 18:34
I'm really enjoying the design and layout of your site. It's a very easy
on the eyes which makes it much more enjoyable for me to come here and visit more often. Did
you hire out a developer to create your theme? Superb work!


Visit my homepage :: Leather coat: http://www.5ijjh.cn/space.php?uid=135142&do=blog&id=519806
Trích dẫn
 
 
0 #71 Thaddeus Chủ nhật-08-17 20:35
This page definitely has all of the information and facts I wanted concerning this subject
and didn't know who to ask.

Also visit my web page; Leather Gear
4U: http://5ijjh.cn/space.php?uid=12315&do=blog&id=909324
Trích dẫn
 
 
0 #70 Julianne Chủ nhật-08-17 04:28
This is very interesting, You are a very skilled blogger.
I have joined your rss feed and look forward to seeking
more of your fantastic post. Also, I have shared your web site in my social networks!


Feel free to visit my web-site - Http://Www.5Ijjh.Cn: http://Www.5Ijjh.cn/space.php?uid=124785&do=blog&id=906920
Trích dẫn
 

Thêm ý kiến


Security code
Làm mới


2

Facebook

Thống kê truy cập

Hiện có 843 khách đang truy cập
2492004