安卓監(jiān)聽(tīng)OnTouchListener的返回值true或者false的作用以及對(duì)OnLongClickListener和OnClickListener監(jiān)聽(tīng)事件影響和作用

android應(yīng)用中常用的監(jiān)聽(tīng)OnTouchListener凉馆、OnClickListener、OnLongClickListener漫拭。

首先在Activity中創(chuàng)建一個(gè)button萧芙,然后對(duì)這個(gè)button同時(shí)設(shè)置OnTouchListener、OnClickListener刁憋、OnLongClickListener這三種監(jiān)聽(tīng)方式。

package com.example.testlistenerdemo;

import android.os.Bundle;

import android.app.Activity;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.View.OnLongClickListener;

import android.view.View.OnTouchListener;

import android.widget.Button;

import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

private Button button;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

button.setOnTouchListener(touchListener);

button.setOnClickListener(clickListener);

button.setOnLongClickListener(longClickListener);

}

public OnTouchListener touchListener = new OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

//按下

if(event.getAction()==MotionEvent.ACTION_DOWN){

Log.i("log","action_down");

return true;

}else if(event.getAction()==MotionEvent.ACTION_UP){

Log.i("log","action_up");

return true;

}else if(event.getAction()==MotionEvent.ACTION_MOVE){

Log.i("log","action_move");

return true;

}

return false;

}

};

public OnClickListener clickListener = new OnClickListener() {

@Override

public void onClick(View v) {

Log.i("long", "click");

}

};

public OnLongClickListener longClickListener = new OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

Log.i("long", "long click");

return false;

}

};

}

在都是返回true值的情況下木蹬,只會(huì)監(jiān)聽(tīng)到onTouchListener至耻。OnClickListener、OnLongClickListener不能被監(jiān)聽(tīng)到镊叁。

執(zhí)行結(jié)果:


長(zhǎng)按和短按按鈕都只能觸發(fā)onTouchListener的事件尘颓。

action_down處理完需要做的事情之后就返回true,表示action_down 事件已經(jīng)被消耗了晦譬。不管你怎么的click或者longclick 都不會(huì)得到響應(yīng)疤苹。

②:

改變onTouchListener里的代碼。將true改為false敛腌。

if(event.getAction()==MotionEvent.ACTION_DOWN){

Log.i("log","action_down");

return false;

}

執(zhí)行結(jié)果:


3個(gè)為一組卧土。長(zhǎng)按和短按按鈕只會(huì)觸發(fā)OnTouchListener、onLongClickListener事件像樊。如果長(zhǎng)按尤莺,則出現(xiàn)action_down、long click生棍、action_up缝裁。短按則是action_down、action_up足绅、long click,短按觸發(fā)long click是因?yàn)閍ction_up返回了true韩脑,它在起作用氢妈。因?yàn)闆](méi)有更改長(zhǎng)按的時(shí)間而是使用系統(tǒng)的500ms,所以在手離開(kāi)手機(jī)屏幕的時(shí)候就又有了一次long click段多。

③:

//按下

if(event.getAction()==MotionEvent.ACTION_DOWN){

Log.i("log","action_down");

returnfalse;

}elseif(event.getAction()==MotionEvent.ACTION_UP){

Log.i("log","action_up");

returnfalse;

}

執(zhí)行結(jié)果:


前3個(gè)為短按首量。后4個(gè)為長(zhǎng)按。

④:

注意:

action_up 返回true時(shí)要注意。如果你同時(shí)使用這三種監(jiān)聽(tīng)的話加缘。action_up之后如果產(chǎn)生long click的話鸭叙。button可是一直處于按下的狀態(tài)〖鸷辏可以從控件的顏色上看得到沈贝。

再者,使用OnLongClickListener的時(shí)候也要注意它的返回值勋乾,返回true時(shí)會(huì)使手機(jī)的振動(dòng)一下宋下。而返回false時(shí)則不會(huì)有這種效果。

true和false在其中起著標(biāo)志事件是否被消耗辑莫,如果消耗了就不再傳遞給其他控件了学歧。如果沒(méi)有消耗則還會(huì)傳遞給其他控件,觸發(fā)其他控件的事件處理函數(shù)各吨。





原文鏈接:http://5200415.blog.51cto.com/3851969/1003113/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末枝笨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子揭蜒,更是在濱河造成了極大的恐慌横浑,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忌锯,死亡現(xiàn)場(chǎng)離奇詭異伪嫁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)偶垮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)张咳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人似舵,你說(shuō)我怎么就攤上這事脚猾。” “怎么了砚哗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵龙助,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蛛芥,道長(zhǎng)提鸟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任仅淑,我火速辦了婚禮称勋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涯竟。我一直安慰自己赡鲜,他們只是感情好空厌,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著银酬,像睡著了一般嘲更。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揩瞪,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天赋朦,我揣著相機(jī)與錄音,去河邊找鬼壮韭。 笑死北发,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喷屋。 我是一名探鬼主播琳拨,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼屯曹!你這毒婦竟也來(lái)了狱庇?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤恶耽,失蹤者是張志新(化名)和其女友劉穎密任,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體偷俭,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浪讳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涌萤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淹遵。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖负溪,靈堂內(nèi)的尸體忽然破棺而出透揣,到底是詐尸還是另有隱情,我是刑警寧澤川抡,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布辐真,位于F島的核電站,受9級(jí)特大地震影響崖堤,放射性物質(zhì)發(fā)生泄漏侍咱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一密幔、第九天 我趴在偏房一處隱蔽的房頂上張望放坏。 院中可真熱鬧,春花似錦老玛、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)麸粮。三九已至,卻和暖如春镜廉,著一層夾襖步出監(jiān)牢的瞬間弄诲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工娇唯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留齐遵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓塔插,卻偏偏與公主長(zhǎng)得像梗摇,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子想许,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容