让类实现接口OnClickListener
然后button.setOnClickListener(this);
之后重写onClick(View v)函数。
通过v.getId()得到是哪个view触发了click事件。然后分情况处理。如
1 package com.example.linearlayout; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Menu; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 10 public class MainActivity extends Activity implements OnClickListener { 11 Button tl; 12 Button rl; 13 Button fl; 14 Button al; 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 tl=(Button)findViewById(R.id.button1); 21 tl.setOnClickListener(this); 22 rl=(Button)findViewById(R.id.button2); 23 rl.setOnClickListener(this); 24 fl=(Button)findViewById(R.id.button3); 25 fl.setOnClickListener(this); 26 al=(Button)findViewById(R.id.button4); 27 al.setOnClickListener(this); 28 } 29 30 @Override 31 public boolean onCreateOptionsMenu(Menu menu) { 32 // Inflate the menu; this adds items to the action bar if it is present. 33 getMenuInflater().inflate(R.menu.main, menu); 34 return true; 35 } 36 37 @Override 38 public void onClick(View v) { 39 // TODO Auto-generated method stub 40 if(v.getId()==R.id.button1) 41 { 42 setContentView(R.layout.tablelayout); 43 } 44 if(v.getId()==R.id.button2) 45 { 46 setContentView(R.layout.relativelayout); 47 } 48 if(v.getId()==R.id.button3) 49 { 50 setContentView(R.layout.framelayout); 51 } 52 if(v.getId()==R.id.button4) 53 { 54 setContentView(R.layout.absolutelayout); 55 } 56 } 57 58 }
上面40到50行中,有4个if语句,用来判断v是哪一个view。
其实可以通过switch(v.getId())来替换
当有多个click事件时的简易做法
时间: 2024-11-17 10:03:29