Android開發基礎————通過內部類實作按鈕點擊事件
首先是代碼實作:
javapublic class ButtonActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
//通過id系結按鈕
Button btn = findViewById(R.id.btn1);
//創建物件
MyOnClickListener mcl = new MyOnClickListener();
//設定監聽器
btn.setOnClickListener(mcl);
}
//創建內部類
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
//在控制臺輸出陳述句
Log.e("TGA","剛剛點擊了使用內部類實作點擊事件的按鈕");
}
}
}
代碼詳解:
關于內部類實作點擊效果的實作:
1.首先利用findById 找到對應按鈕的id (在xml檔案里面設定的id)
作用就是將在xml檔案中的id與btn1所系結
Button btn = findViewById(R.id.btn1);
2.點擊事件 為btn添加監聽器 作用是時刻監聽這個按鈕有沒有被點擊,如果一旦被點擊則會觸發它
//代碼實作
btn.setOnClickListener(xx); //根據這個setOnClickListener方法其實是要求傳入一個實作OnClickListener介面的一個物件 這里先用“xx”替代
3.根據要求我們現在創建一個類去實作這個介面
//方案一:使用內部類實作這個介面, tips:當然我們還可以去使用匿名內部類去實作(在下一文章會進行詳細的講解)
class myOnClickListener implements OnClickListener{
//根據介面要求得去重寫介面內部的onClick方法
@Override
public void onClick(View v) {
//在控制臺輸出陳述句作為提示
Log.e("TGA","剛剛點擊了使用內部類實作點擊事件的按鈕");
}
}
這樣我們就完成了這個介面實作類
4.根據setOnClickListener方法 要求我們傳入這個內部類的物件,我們就給他new一個物件
myOnClickListener mcl = new myOnClickListener();
5. 最后一步把那個“xx” 換成剛剛 new 出來的內部類物件 mcl 即可,
btn1.setOnClickListener(mcl);
是不是很簡單~~下面我們點擊運行之后看看效果:
點擊
我們點擊第一個按鈕看看效果:

在控制臺中列印出了我們的文字,
====================================================================================
下面貼出xml代碼:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ButtonActivity">
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定義內部類的方法實作的點擊事件"/>
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定義內部類的方法實作的點擊事件2"/>
<Button
android:id="@+id/NoName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="匿名內部類的方法實作的點擊事件"/>
<Button
android:id="@+id/activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="當前Activity實作的點擊事件的介面"/>
<Button
android:id="@+id/firstButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="在xml檔案中系結"/>
</LinearLayout>
最后完結撒花~~~ 若有問題請大佬指正,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/37032.html
標籤:其他
上一篇:plotly繪圖問題
下一篇:MT5G芯片天璣800/MTK6873/MT6873WiFi6+Android10.0 NSA和SA雙模5G核心板
