Android如何添加控件監(jiān)聽器(三種方式)
本文概述:
本文介紹了,在Android中為控件添加監(jiān)聽的三種常見方式
- 設(shè)置控件的onClick屬性
- 采用匿名內(nèi)部類
- MainActivity 實(shí)現(xiàn) View.OnClickListener 接口
方式一:在布局中添加onClick屬性
編寫思路:
在布局文件中:
- 指定控件 id
- 指定控件onClick屬性
在MainActivity中:
- 在onCreate中拿到控件實(shí)例
- 在onCreate之外,創(chuàng)建監(jiān)聽方法(方法名與前面設(shè)置的onClick屬性相同)
布局代碼:指定控件的onClick屬性(已經(jīng)被廢棄掉了)
<Button …… android:id="@+id/button" android:onClick="buttonClick" …… />Activity代碼:
public class MainActivity extends AppCompatActivity { ? private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //獲取控件示例 button = findViewById(R.id.button); } ? public void buttonClick(View view) { setToast("點(diǎn)擊了button按鈕"); } ? public void setToast(String string){ Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); } }運(yùn)行結(jié)果:可不可以限定Toast的提示位置?比如說將Toast放在中間去

方式二:采用匿名內(nèi)部類
編寫思路:
在布局文件中:指定控件 id
在MainActivity中
在onCreate內(nèi):
- 獲取控件實(shí)例
- 為控件添加監(jiān)聽(使用匿名內(nèi)部類重寫onClick方法)
布局代碼:此時(shí)不能設(shè)置onClick屬性
<Button …… android:id="@+id/button" …… />Java 代碼
public class MainActivity extends AppCompatActivity { ? private Button button; ? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); ? //獲取控件示例 button = findViewById(R.id.button); ? //添加監(jiān)聽 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setToast("點(diǎn)擊了按鈕"); } }); } ? public void setToast(String string){ Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); } }運(yùn)行結(jié)果:

方式三:MainActivity 實(shí)現(xiàn) View.OnClickListener 接口
編寫思路:
在布局文件中:
- 指定控件 id
在MainActivity聲明處:實(shí)現(xiàn) View.OnClickListener 接口
在MainActivity中:
在onCreate方法內(nèi):
- 拿到控件實(shí)例
- 為控件注冊(cè)監(jiān)聽器
在onCreate方法外:重寫onClick方法
布局代碼:
<Button …… android:id="@+id/button" …… />MainActivity 代碼
public class MainActivity extends AppCompatActivity implements View.OnClickListener { ? private Button button; ? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); ? //獲取控件示例 button = findViewById(R.id.button); //為控件注冊(cè)監(jiān)聽器 button.setOnClickListener(this); } ? public void setToast(String string){ Toast.makeText(this,string,Toast.LENGTH_SHORT).show(); } ? @Override public void onClick(View view) { setToast("按鈕被點(diǎn)擊了"); } }運(yùn)行效果:

到此這篇關(guān)于Android如何添加控件監(jiān)聽器(三種方式)的文章就介紹到這了,更多相關(guān)Android 控件監(jiān)聽器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android Studio報(bào)錯(cuò)unable to access android sdk add-on list解決方案
這篇文章主要介紹了Android Studio報(bào)錯(cuò)unable to access android sdk add-on list解決方案,本文通過多種方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Android使用PullToRefresh完成ListView下拉刷新和左滑刪除功能
ListView下刷新刷功能相信從事Android開發(fā)的猿友們并不陌生,本文就帶領(lǐng)一些剛?cè)腴Tandroid的朋友或者一起愛分享的朋友來簡單的實(shí)現(xiàn)ListView的下拉刷新和左滑刪除效果。感興趣的朋友一起看看吧2016-11-11
Android Studio搜索功能(查找功能)及快捷鍵圖文詳解
這篇文章主要介紹了Android Studio搜索功能(查找功能)及快捷鍵圖文詳解,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2017-12-12
Android自定義ListView實(shí)現(xiàn)下拉刷新上拉加載更多
Listview現(xiàn)在用的很少了,基本都是使用Recycleview,但是不得不說Listview具有劃時(shí)代的意義,我們可以自己添加下拉刷新,上拉加載更多功能。本文就來利用自定義ListView實(shí)現(xiàn)下拉刷新上拉加載更多效果,需要的可以參考一下2022-10-10
深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請(qǐng)求
本篇文章主要介紹了深入淺出RxJava+Retrofit+OkHttp網(wǎng)絡(luò)請(qǐng)求,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
Android 自定義imageview實(shí)現(xiàn)圖片縮放實(shí)例詳解
這篇文章主要介紹了Android 自定義imageview實(shí)現(xiàn)圖片縮放實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android利用Dom對(duì)XML進(jìn)行增刪改查操作詳解
使用DOM進(jìn)行增刪改查,這個(gè)是DOM的優(yōu)勢(shì)所在,其實(shí)代碼很簡單,不需要過多的解釋,下面這篇文章主要給大家介紹了關(guān)于Android利用Dom對(duì)XML進(jìn)行增刪改查操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-01-01
Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法
這篇文章主要介紹了Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法的相關(guān)資料,需要的朋友可以參考下2017-04-04

