《Android》Lesson03-監(jiān)聽(tīng)器骏令、Toast

Week02? ? 2016/09/22上午1-4節(jié)

一、復(fù)習(xí):新建一個(gè)空的AS項(xiàng)目Chap2AsProj

MainActivity.java(在目錄Chap2AsProj\app\src\main\java\com\kamin\dr\chap2asproj)

activity_main.xml(在目錄Chap2AsProj\app\src\main\res\layout)

strings.xml(在目錄Chap2AsProj\app\src\main\res\values)

R.java(Chap2AsProj\app\build\generated\source\r\debug\com\kamin\dr\chap2asproj中)

AndroidManifest.xml(在目錄Chap2AsProj\app\src\main)

二、Hello World棠赛!使用String.xml表示

三、activity_main.xml增加一個(gè)Button

String.xml設(shè)置btnText

了解activity_main.xml<Button>元素的屬性layout_width膛腐,layout_height

代碼提示快捷鍵:Ctrl+Alt+Space(空格鍵)

四睛约、Button的使用

API參考鏈接Package Index - Android SDK

Android學(xué)習(xí)優(yōu)秀網(wǎng)站 - 簡(jiǎn)書(shū)

1,findViewById

2哲身,setOnClickListener

Ctr+I快捷鍵可以添加接口中未實(shí)現(xiàn)的方法

Android控件系列之Button以及Android監(jiān)聽(tīng)器 - 王燾 - 博客園

Android成長(zhǎng)之路-實(shí)現(xiàn)監(jiān)聽(tīng)器的三種方法 - 博客頻道 - CSDN.NET

Android筆記Android基于事件監(jiān)聽(tīng)器處理機(jī)制 - Android移動(dòng)開(kāi)發(fā)技術(shù)文章_手機(jī)開(kāi)發(fā) - 紅黑聯(lián)盟

android開(kāi)發(fā)中監(jiān)聽(tīng)器的三種實(shí)現(xiàn)方法(OnClickListener)

第18章痰腮、基于監(jiān)聽(tīng)器的事件處理(從零開(kāi)始學(xué)Android)

android三種方法實(shí)現(xiàn)監(jiān)聽(tīng)事件

android studio for android learning (十八) android事件監(jiān)聽(tīng)器綁定的方法詳解

五、Toast使用

1律罢,Toast作用:提示信息膀值,一段時(shí)間會(huì)消失

2棍丐,makeText()方法,show()方法

六沧踏、綜合以上知識(shí)點(diǎn)的代碼及效果截圖

1歌逢,項(xiàng)目結(jié)構(gòu)圖

項(xiàng)目結(jié)構(gòu)圖

2,AndroidManifest.xml代碼(默認(rèn)產(chǎn)生的翘狱,沒(méi)有修改)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kamin.chap2asproj">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

3秘案,string.xml代碼:字符串常量盡量寫(xiě)在此文件中,易于修改和維護(hù)

<resources>
<string name="app_name">Chap2AsProj</string>
<string name="hello">上午好!</string>
<string name="txBtnFirst">內(nèi)部接口類監(jiān)聽(tīng)器</string>
<string name="txBtnSecond">匿名內(nèi)部監(jiān)聽(tīng)器</string>
<string name="txBtnThird">類上實(shí)現(xiàn)監(jiān)聽(tīng)器</string>
<string name="hint1">my First button is Clicked!</string>
<string name="hint2">my Second button is Clicked!</string>
<string name="hint3">my Third button is Clicked!</string>
</resources>

4潦匈,activity_main.xml代碼

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.kamin.chap2asproj.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/tvHello" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txBtnFirst"
android:id="@+id/btnFirst"
android:layout_below="@+id/tvHello"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="61dp" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txBtnSecond"
android:id="@+id/btnSecond"
android:layout_below="@+id/btnFirst"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="32dp" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txBtnThird"
android:id="@+id/btnThird"
android:layout_below="@+id/btnSecond"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="44dp" />
</RelativeLayout>

5阱高,MainActivity.java代碼:分3種方式完成了監(jiān)聽(tīng)器,以后寫(xiě)代碼可以選擇任何1種茬缩,建議使用第2中匿名監(jiān)聽(tīng)器赤惊。不管哪種監(jiān)聽(tīng)器都必須實(shí)現(xiàn)(1)注冊(cè)(綁定)監(jiān)聽(tīng)器(2)實(shí)現(xiàn)OnClick方法

第1種監(jiān)聽(tīng)器:

//在onCreate方法內(nèi)注冊(cè)監(jiān)聽(tīng)器

//setOnClickListener的參數(shù)為自定義監(jiān)聽(tīng)器類MyOnClickListener的對(duì)象

btnFirst.setOnClickListener(new MyOnClickListener());//監(jiān)聽(tīng)器1綁定監(jiān)聽(tīng)器,可以理解成:把門鈴裝在你家大門上

//在類MainActivity內(nèi)定義內(nèi)部類MyOnClickListener 作為監(jiān)聽(tīng)器

/*自定義的監(jiān)視器凰锡,可以理解成你的門鈴*/
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
System.out.println("按鈕被單擊未舟!*****");
Toast.makeText(MainActivity.this,R.string.hint1,Toast.LENGTH_LONG).show();
}
}

第2種監(jiān)聽(tīng)器:(推薦使用)

//在onCreate方法內(nèi)注冊(cè)監(jiān)聽(tīng)器

//setOnClickListener的參數(shù)為匿名監(jiān)聽(tīng)器,注冊(cè)監(jiān)聽(tīng)器和監(jiān)聽(tīng)器的實(shí)現(xiàn)用一條語(yǔ)句完成

btnSecond.setOnClickListener(new View.OnClickListener(){//監(jiān)聽(tīng)器2匿名監(jiān)聽(tīng)器
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint2,Toast.LENGTH_SHORT).show();
}
});

第3種監(jiān)聽(tīng)器:

//本類必須實(shí)現(xiàn)接口View.OnClickListener掂为,本類就是一個(gè)監(jiān)聽(tīng)器

public class MainActivity extends AppCompatActivity implements View.OnClickListener

//在onCreate方法內(nèi)注冊(cè)監(jiān)聽(tīng)器

//setOnClickListener的參數(shù)是this,由于本類就是監(jiān)聽(tīng)器

btnThird.setOnClickListener(this);//監(jiān)聽(tīng)器3本類就是一個(gè)監(jiān)聽(tīng)器

//由于本類MainActivity實(shí)現(xiàn)了接口View.OnClickListener裕膀,

//所以必須在MainActivity類中實(shí)現(xiàn)接口OnClickListener的抽象方法public void onClick(View view)

@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint3,Toast.LENGTH_LONG).show();
}


含3種監(jiān)聽(tīng)器的全部代碼如下:

package com.kamin.chap2asproj;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
Button btnFirst,btnSecond,btnThird;//定義Button
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnFirst=(Button)findViewById(R.id.btnFirst);//界面上的button
btnFirst.setOnClickListener(new MyOnClickListener());//監(jiān)聽(tīng)器1綁定監(jiān)聽(tīng)器,可以理解成:把門鈴裝在你家大門上

btnSecond=(Button)findViewById(R.id.btnSecond);
btnSecond.setOnClickListener(new View.OnClickListener(){//監(jiān)聽(tīng)器2匿名監(jiān)聽(tīng)器
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint2,Toast.LENGTH_SHORT).show();
}
});

btnThird=(Button)findViewById(R.id.btnThird);
btnThird.setOnClickListener(this);//監(jiān)聽(tīng)器3本類就是一個(gè)監(jiān)聽(tīng)器

}
/*自定義的監(jiān)視器勇哗,可以理解成你的門鈴*/
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
System.out.println("按鈕被單擊昼扛!*****");
Toast.makeText(MainActivity.this,R.string.hint1,Toast.LENGTH_LONG).show();
}
}

@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,R.string.hint3,Toast.LENGTH_LONG).show();
}

}

6,運(yùn)行效果圖

運(yùn)行效果圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末欲诺,一起剝皮案震驚了整個(gè)濱河市野揪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞧栗,老刑警劉巖斯稳,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異迹恐,居然都是意外死亡挣惰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門殴边,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)憎茂,“玉大人,你說(shuō)我怎么就攤上這事锤岸∈#” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵是偷,是天一觀的道長(zhǎng)拳氢。 經(jīng)常有香客問(wèn)我募逞,道長(zhǎng),這世上最難降的妖魔是什么馋评? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任放接,我火速辦了婚禮,結(jié)果婚禮上留特,老公的妹妹穿的比我還像新娘纠脾。我一直安慰自己,他們只是感情好蜕青,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布苟蹈。 她就那樣靜靜地躺著,像睡著了一般右核。 火紅的嫁衣襯著肌膚如雪慧脱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天蒙兰,我揣著相機(jī)與錄音磷瘤,去河邊找鬼芒篷。 笑死搜变,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的针炉。 我是一名探鬼主播挠他,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼篡帕!你這毒婦竟也來(lái)了殖侵?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤镰烧,失蹤者是張志新(化名)和其女友劉穎拢军,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體怔鳖,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茉唉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了结执。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片度陆。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖献幔,靈堂內(nèi)的尸體忽然破棺而出懂傀,到底是詐尸還是另有隱情,我是刑警寧澤蜡感,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布蹬蚁,位于F島的核電站恃泪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缚忧。R本人自食惡果不足惜悟泵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闪水。 院中可真熱鬧糕非,春花似錦、人聲如沸球榆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)持钉。三九已至衡招,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間每强,已是汗流浹背始腾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留空执,地道東北人浪箭。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像辨绊,于是被迫代替她去往敵國(guó)和親奶栖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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