首页 > 代码库 > 当有多个click事件时的简易做法

当有多个click事件时的简易做法

让类实现接口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     @Override17     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     @Override31     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     @Override38     public void onClick(View v) {39         // TODO Auto-generated method stub40         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())来替换