Android的事件處理——監聽介面方式
監聽介面處理步驟:
1. 實現Listener介面
(1)定義Activity時實現介面
(2)定義內部類實現介面
(3)通過匿名內部類實現介面
2. View控制元件註冊事件監聽器
例:myButton.setOnClickListener(this);
3. 重寫OnXXX()方法**
例:public void onClick(View v)方法
三個例子:
定義Activity時實現OnClickListener介面:
//1.實現介面
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private int count = 0;
private Button btnClick;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//2.註冊監聽器
btnClick = findViewById(R.id.btnClick);
btnClick.setOnClickListener(this);
}
//3.重寫onClick方法
@Override
public void onClick(View view) {
count++;
if (count == 5){
finish(); // 退出
}
btnClick.setText("我被點選了" + count + "次");
}
定義內部類實現OnKeyListener介面:
public class MainActivity extends AppCompatActivity {
//1.實現介面
class MyKeyListener implements View.OnKeyListener{
//3.重寫onKey方法
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
keyCode += "鍵盤碼:" + i + "\n";
System.out.println("wwwkkk----" + keyCode);
textView.setText(keyCode);
return false;
}
}
注意:每次鍵盤輸入1次,textView顯示2次“鍵盤碼值”,是因為KeyEvent觸發了DOWN和UP兩次事件
定義匿名內部類實現OnTouchListener介面:
public class MainActivity extends AppCompatActivity {
private TextView textViewTouch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewTouch = findViewById(R.id.textViewTouch);
ImageView imageView = findViewById(R.id.imageViewTouch);
}
}
相關文章
- Java GUI之事件監聽與處理JavaGUI事件
- Netty事件監聽和處理(上)【有福利】Netty事件
- Netty事件監聽和處理(下)【有福利】Netty事件
- Netty中自定義事件處理程式和監聽器Netty事件
- Java GUI之事件監聽與處理的匿名類實現方法JavaGUI事件
- Android.GridView事件監聽AndroidView事件
- Oracle 監聽異常處理Oracle
- java springboot監聽事件和處理事件JavaSpring Boot事件
- 事件監聽事件
- React 中常用的事件處理方式React事件
- Flutter事件監聽Flutter事件
- jQuery事件監聽jQuery事件
- 監聽滑鼠事件事件
- js 監聽事件JS事件
- JavaScript 事件監聽JavaScript事件
- Javascript事件模型系列(三)jQuery中的事件監聽方式及異同點JavaScript事件模型jQuery
- 事件和事件監聽器事件
- android監聽TF卡插拔事件 判斷Android事件
- Laravel 中的事件監聽Laravel事件
- passive 的事件監聽器事件
- nodejs監聽的方式NodeJS
- vue之監聽事件Vue事件
- 監聽鍵盤事件事件
- 初識事件監聽事件
- JS事件監聽器JS事件
- 監聽所有模型的 saved 事件模型事件
- JS的事件監聽機制JS事件
- 11201監聽BUG處理
- 關於Android的幾種事件處理Android事件
- deleted事件監聽報錯delete事件
- 如何移除事件監聽器事件
- 鍵盤監聽事件--向左事件
- java 自定義監聽事件Java事件
- javascript監聽鍵盤事件JavaScript事件
- springboot事件監聽Spring Boot事件
- 對於linux go1.5版本的一種tcp監聽關閉處理方式LinuxGoTCP
- Javascript事件處理程式的5種方式(相容寫法)JavaScript事件
- Android 觸控事件處理機制Android事件