今天來實際建立一個Event Listener。
整體來說,要建立一個Event Listener,步驟如下:
實際來做做看,假設在我們的activity_main.xml中有一個位於畫面中心的TextView,並且給予id(showToast)。
<TextView
android:id="@+id/showToast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="請點擊"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
我們想要使用者點擊這個TextView時,顯示一個Toast,步驟如下:
ShowToastClickListener
類別,來實作View.OnClickListener
介面,並且實作其onClick()
方法,內容便是顯示一個toast。package com.example.android.eventlistener_practice;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
// step1. 定義Event Listener class
public class ShowToastClickListener implements View.OnClickListener{
@Override
public void onClick(View view){
Toast.makeText(view.getContext(),
"開啟toast",
Toast.LENGTH_SHORT).show();
}
}
Step2. 建立Event Listener物件
進入MainActivity.java,使用我們剛剛建好的ShowToastClickListener類別來建立物件clickListener。
Step3. 將Event Listener附加到View上
建立TextView物件showToast,用其setOnClickListener()方法將我們的clickListener物件附加上去:
package com.example.android.eventlistener_practice;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// step2. 建立監聽器
ShowToastClickListener clickListener = new ShowToastClickListener();
TextView showToast = findViewById(R.id.showToast);
// step3. 將監聽器附加到view
showToast.setOnClickListener(clickListener);
}
}
當點擊中央的TextView時,便會顯示toast囉: