久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 安卓開發中實用的例(li)子

安卓開發中(zhong)實(shi)用的例子 時(shi)間:2018-09-21      來源(yuan):未知

我(wo)(wo)們在實(shi)(shi)際開發中經(jing)常會需(xu)(xu)要按鍵,但是如(ru)果(guo)像(xiang)平時(shi)使用OnClickListener 來(lai)監聽(ting)的(de)(de)話,其(qi)實(shi)(shi)是不能滿足我(wo)(wo)們的(de)(de)需(xu)(xu)求的(de)(de),比如(ru)要做一個按鍵的(de)(de)秒表app,按下(xia)開始(shi)計時(shi),放開停止(zhi)計時(shi),如(ru)果(guo)用上(shang)面的(de)(de)OnClickListener監聽(ting)器來(lai)監聽(ting),只能監聽(ting)到按鍵抬(tai)起(qi)時(shi)的(de)(de)動作(zuo)(zuo),那么按下(xia)抬(tai)起(qi)動作(zuo)(zuo)分(fen)開監聽(ting)的(de)(de)話如(ru)何實(shi)(shi)現,這里作(zuo)(zuo)者(zhe)自己實(shi)(shi)現的(de)(de)一個方法,大家可以參考。

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 + " 秒(miao)");

}

}

};

這里(li)(li)我們利(li)用內部(bu)類去從寫了兩個(ge)監(jian)聽(ting)器里(li)(li)的(de)方(fang)法(fa),以便比較(jiao),一個(ge)是(shi)上面所講的(de)OnClickListener,另一個(ge)是(shi)實現(xian)我們監(jian)聽(ting)按下抬起兩個(ge)動作的(de)OnTouchListener,內部(bu)類的(de)代碼如下:

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) //判斷動(dong)作(zuo),如果是按下的話,置位標志位,開啟(qi)線程

{

state = true;

new MyThread().start();

}

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

{

state = false;

}

}

return false;

}

}

因為這里(li)我們要實現(xian)一(yi)個按下(xia)開始計時(shi),抬起停止計時(shi)功能(neng),所(suo)以計時(shi)功能(neng)需要在一(yi)個線程里(li)去實現(xian),這里(li)使用handler-message實現(xian),方(fang)法如(ru)下(xia):

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秒(miao)count加一(yi)次,并將(jiang)count數字傳到handler中,去更新(xin)textview內容,此(ci)方(fang)法穩(wen)定可(ke)行,系統資源占用少,用在其他項目中有不(bu)錯的(de)效果。

運行結果:

按下時

抬起時

上一篇:Logo

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

熱點文(wen)章推薦
華清學員就業(ye)榜(bang)單
高薪(xin)學員(yuan)經驗分享
熱點新聞推薦
前臺專線(xian):010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談(tan)專(zhuan)線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部