日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 學習資源 > 講師博文 > 安卓開發中實用的例子

安卓開發中實用的例子 時間:2018-10-28      來源:華清遠見

我們在實際開發中經常會需要按鍵,但是如果像平時使用OnClickListener 來監聽的話,其實是不能滿足我們的需求的,比如要做一個按鍵的秒表app,按下開始計時,放開停止計時,如果用上面的OnClickListener監聽器來監聽,只能監聽到按鍵抬起時的動作,那么按下抬起動作分開監聽的話如何實現,這里作者自己實現的一個方法,大家可以參考。

Java Code

textView = (TextView) findViewById(R.id.textView1);

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

ButtonListener b = new ButtonListener();

button.setOnClickListener(b);

button.setOnTouchListener(b);

handler = new Handler()

{

@Override

public void handleMessage(Message msg)

{

// TODO Auto-generated method stub

super.handleMessage(msg);

if(msg.what == 0x1234)

{

textView.setText("計時:" + msg.obj + " 秒");

}

}

};

這里我們利用內部類去從寫了兩個監聽器里的方法,以便比較,一個是上面所講的OnClickListener,另一個是實現我們監聽按下抬起兩個動作的OnTouchListener,內部類的代碼如下:

Java Code

class ButtonListener implements OnClickListener, OnTouchListener

{

public void onClick(View v)

{

if(v.getId() == R.id.button1)

{

Log.d("test", "cansal button ---> click");

Toast tst = Toast.makeText(MainActivity.this, "33333333",

Toast.LENGTH_SHORT);

tst.show();

}

}

public boolean onTouch(View v, MotionEvent event)

{

if(v.getId() == R.id.button1)

{

if(event.getAction() == MotionEvent.ACTION_DOWN) //判斷動作,如果是按下的話,置位標志位,開啟線程

{

state = true;

new MyThread().start();

}

if(event.getAction() == MotionEvent.ACTION_UP) //如果是抬起,則將標志位復位,使線程退出

{

state = false;

}

}

return false;

}

}

因為這里我們要實現一個按下開始計時,抬起停止計時功能,所以計時功能需要在一個線程里去實現,這里使用handler-message實現,方法如下:

Java Code

class MyThread extends Thread

{

@Override

public void run()

{

// TODO Auto-generated method stub

super.run();

while(state)

{

try

{

Thread.sleep(1000);

}

catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

Message message = new Message();

message.what = 0x1234;

message.obj = count++;

handler.sendMessage(message);

//handler.sendEmptyMessage(0x1234);

}

}

}

線程里1秒count加一次,并將count數字傳到handler中,去更新textview內容,此方法穩定可行,系統資源占用少,用在其他項目中有不錯的效果。

運行結果:

按下時

抬起時

上一篇:Logo

下一篇:智能手環客戶端詳細設計

戳我查看嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5,京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: karina hart| 丁尼| lanarhoades黑人系列| xiazai| 狂野殴美激情性bbbbbb| 《高校教师》日本电影| 荒野求生21天美国原版免费播放| 小姐与流氓| 回响电影| 无影侦察队电影完整版免费| 女孩们在线观看完整电影| 飞天电影| cctv17节目表今天| 相见故明月| 阴阳界 电影| 少年派二普通话版| 韩国电影金珠| 散文诗二首批注| 夜店 电影| 邓紫飞| 古风少女换装纸娃娃| 国家宝藏电影| 汤姆·威尔金森| 惊魂| 大奉打更人电视剧在线观看全集免费播放 | 常乐镇| 青春之放纵作文免费阅读| 汪汪队奇趣蛋| 安达充| 浙江卫视今天电视节目表| 潘美烨| 微信图像男| 《欢·爱》郭晓东| 红色娘子军歌词| 果宝特攻5 2030| 鬼迷心窍1994| 预备党员思想汇报1500字| 陈建斌电影| 电影名:《被囚禁的人》| 柏欣彤12点以后跳的广场舞| 美女热吻|