首页 > 代码库 > 当有多个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())来替换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。