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的提示位置?比如說(shuō)將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獲取手機(jī)配置信息具體實(shí)現(xiàn)代碼
下面為大家介紹下使用android獲取手機(jī)配置信息的具體過(guò)程,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-06-06android當(dāng)前apn的狀態(tài)以及獲取方法
在絕大多數(shù)android機(jī)器etc路徑下存放一個(gè)的apns-conf.xml文件,表示當(dāng)前機(jī)器使用的apn信息通過(guò)root機(jī)器可以push出來(lái)看看,具體路徑可以上網(wǎng)搜下,接下來(lái)介紹獲取apn的狀態(tài)的方法2013-01-01Android 訪問(wèn)文件權(quán)限的四種模式介紹
這篇文章主要介紹了Android 訪問(wèn)文件權(quán)限的四種模式介紹的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06Android關(guān)于Glide的使用(高斯模糊、加載監(jiān)聽、圓角圖片)
這篇文章主要為大家詳細(xì)介紹了Android關(guān)于Glide的使用,內(nèi)容豐富,高斯模糊、加載監(jiān)聽、圓角圖片希望大家可以掌握,感興趣的小伙伴們可以參考一下2016-11-11Android多線程及異步處理問(wèn)題詳細(xì)探討
究其為啥需要多線程的本質(zhì)就是異步處理,直觀一點(diǎn)說(shuō)就是不要讓用戶感覺到“很卡”為了提高用戶體驗(yàn)?zāi)鞘潜仨氁褂玫?/div> 2013-06-06Android數(shù)據(jù)緩存框架內(nèi)置ORM功能使用教程
這篇文章主要為大家介紹了Android數(shù)據(jù)緩存框架內(nèi)置ORM功能使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09最新評(píng)論