五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第五章 用戶界面基礎(chǔ)(界面事件)

2018-11-06 21:04 作者:swiss126  | 我要投稿

參考資料:

《Android應(yīng)用程序開發(fā)》ISBN 9787302283164

參考軟件:

Android Studio、Eclipse+ADT、Android SDK、JDK

界面事件

(一)?事件使我們在于UI交互式發(fā)生的,我們點擊一個按鍵時,可能就已經(jīng)除非好幾個事件,例如我們點擊數(shù)字鍵“0”,他會涉及到按下事件,和一個彈起(松開)事件,在我們android中還可能涉及到觸摸屏事件,所以在android系統(tǒng)中,事件是作為常用的功能之一;

在android下,事件的發(fā)生是在監(jiān)聽器下進(jìn)行,android系統(tǒng)可以響應(yīng)按鍵事件和觸摸屏事件,事件說明如下:

onClick(View v)?一個普通的點擊按鈕事件

boolean onKeyMultiple(int keyCode,intrepeatCount,KeyEvent event)用于在多個事件連續(xù)時發(fā)生,用于按鍵重復(fù),必須重載@Override實現(xiàn)

boolean onKeyDown(int keyCode,KeyEventevent)?用于在按鍵進(jìn)行按下時發(fā)生

?boolean onKeyUp(int keyCode,KeyEvent event)?用于在按鍵進(jìn)行釋放時發(fā)生

onTouchEvent(MotionEvent event)觸摸屏事件,當(dāng)在觸摸屏上有動作時發(fā)生

boolean onKeyLongPress(int keyCode,KeyEvent event)當(dāng)你長時間按時發(fā)生(疑問?)

(二)?首先我們建立一個android項目,當(dāng)項目建立好之后,直接在默認(rèn)的main.xml文件中拖放一個button?按鈕,其他的不需要在這里做什么了,然后就可以到命名好的.java文件中進(jìn)行先關(guān)代碼的書寫;

1.?????對要使用的控件進(jìn)行引用,當(dāng)然你也可以用到的時候再在相關(guān)類控件添加引用

import?android.app.Activity;

import?android.os.Bundle;

import?android.view.KeyEvent;

import?android.view.MotionEvent;

import?android.view.View;

import?android.widget.Button;

import?android.widget.Toast;

2.?????獲得相關(guān)對象,設(shè)置控件監(jiān)聽器

Button?button=(Button) findViewById(R.id.button1);

????????//設(shè)置監(jiān)聽

??????? ?button.setOnClickListener(new?Button.OnClickListener()

??????? ?{

???????????@Override

???????????public?void?onClick(View v) {

??????????????//?TODO?Auto-generated method stub

????????????? ?DisplayToast("事件觸發(fā)成功");

?????????? ?} ? ? ? ? ??

??????? ?});

請注意這里末尾使用的是分號“;這里就是獲得button的實例,然后對他進(jìn)行監(jiān)聽,當(dāng)用戶點擊時就會發(fā)生onClick事件,這里還用到一個方法,就是顯示一個短消息,在屏幕停留幾秒鐘就會自動消失,其方法如下:

public?void?DisplayToast(String str)

??? {

??? Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

??? }

當(dāng)然你也可以設(shè)置顯示長點,即Toast.LENGTH_SHORT改為Toast.LENGTH_LONG

3.?????當(dāng)按鍵按下是發(fā)生的事件

public boolean ?onKeyDown(int?keyCode,KeyEvent event)

??? ?{

??? ?switch(keyCode)

??? ?{

??? ?case KeyEvent.KEYCODE_0:

??? ???? DisplayToast("你按下數(shù)字鍵0");

??? ???? break;

??? ?case KeyEvent.KEYCODE_DPAD_CENTER:

??? ???? DisplayToast("你按下中間鍵");

??? ???? break;sss

??? ?case KeyEvent.KEYCODE_DPAD_DOWN:

??? ???? DisplayToast("你按下下方向鍵");

??? ???? break;

??? ?case KeyEvent.KEYCODE_DPAD_LEFT:

??? ???? DisplayToast("你按下左方向鍵");

??? ???? break;

??? ?case KeyEvent.KEYCODE_DPAD_RIGHT:

??? ???? DisplayToast("你按下右方向鍵");

??? ???? break;

??? ?case KeyEvent.KEYCODE_DPAD_UP:

??? ???? DisplayToast("你按下上方向鍵");

?????????? ?break;

??? ?case KeyEvent.KEYCODE_ALT_LEFT:

??? ???? DisplayToast("你按下組合鍵alt+←");

??? ???? break;

??? ?}

??? ?return super.onKeyDown(keyCode, event);

??? ?}

這里所有的keyCode都囊括了,這只是幾個比較典型的例子,效果如下:

4.?????????當(dāng)按鍵彈起時發(fā)生的事件,代碼如下:

public?boolean?onKeyUp(int?keyCode,KeyEvent ?event)

??? ?{

????switch(keyCode)

??? ?{

????case?KeyEvent.KEYCODE_0:

??? ???? DisplayToast("松開數(shù)字鍵0");

??? ?????break;

????case?KeyEvent.KEYCODE_DPAD_CENTER:

??? ???? DisplayToast("松開中間鍵");

??? ?????break;

????case?KeyEvent.KEYCODE_DPAD_DOWN:

??? ???? DisplayToast("松開下方向鍵");

??? ?????break;

????case?KeyEvent.KEYCODE_DPAD_LEFT:

??? ???? DisplayToast("松開左方向鍵");

??? ?????break;

????case?KeyEvent.KEYCODE_DPAD_RIGHT:

??? ???? DisplayToast("松開右方向鍵");

??? ?????break;

????case?KeyEvent.KEYCODE_DPAD_UP:

??? ???? DisplayToast("松開上方向鍵");

???????????break;

????case?KeyEvent.KEYCODE_ALT_LEFT:

??? ???? DisplayToast("松開組合鍵alt+←");

??? ?????break;

??? ?}

????return?super.onKeyUp(keyCode, event);

??? ?}

效果與上圖類似,只是文字不一樣

5.?????????觸摸屏事件,當(dāng)用手或者用筆在觸摸屏上做動作是發(fā)生,相關(guān)代碼如下:

public?boolean?onTouchEvent(MotionEvent ?event)

??? ?{

????int?iAction=event.getAction();

????if(iAction==MotionEvent.ACTION_MOVE)

??? ?{

? ? ? ? DisplayToast("你在觸摸屏上進(jìn)行了滑動");

??? ?}

????else

??? ?{

??? ?????return?false;

??? ?}

????return?super.onTouchEvent(event);

??? ?}

6.?????????連續(xù)點擊按鍵時發(fā)生的事件

Publicboolean ?onKeyMultiple(int keyCode,int repeatCount,KeyEvent event)

{

?Return ?super.onKeyMultiple(keyCode, repeatCount, event);

}



第五章 用戶界面基礎(chǔ)(界面事件)的評論 (共 條)

分享到微博請遵守國家法律
正定县| 新乡县| 东乡| 黔东| 大关县| 宜良县| 阜宁县| 灌云县| 格尔木市| 宾阳县| 元朗区| 攀枝花市| 海兴县| 八宿县| 乐都县| 舟曲县| 通山县| 综艺| 甘孜| 阳信县| 千阳县| 湘潭市| 蒲江县| 汾西县| 梁山县| 汤原县| 休宁县| 那曲县| 镇江市| 香河县| 万荣县| 乾安县| 团风县| 电白县| 阿鲁科尔沁旗| 萨迦县| 新民市| 黑河市| 勐海县| 罗甸县| 中牟县|