方法一:在XML文件中指定 单击事件函数
<Button android:id="@+id/button1" android:layout_width="120dip" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="59dp" android:onClick="onclicklistener" android:text="@string/mybuttonstr" />
然后在代码中实现这个函数。注意,函数需要public 要不会异常。
public void onclicklistener(View tager) { TextView textView1 =(TextView)findViewById(R.id.textView1); textView1.setText("西安.王磊"); }
方法二:
在activity 的onCreate 中 找到button,然后给它赋上事件监听器。这个方式非常普遍。
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button but=(Button)this.findViewById(id.button1); but.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Log.v("MyTag", "onClick"); } }); }
方法三:
这个方法其实是方法二的变种。就是提前定义一个OnClickListener 的handler,然后可以将这个activity中所有的button多使用这个handler,通过判断不同id来进行不同的逻辑。这个方式适合比较多的button的情况使用。
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); View.OnClickListener handler=new OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()){ case id.button1: Log.v("MyTag", "Button1 OnClick"); break; case id.button2: Log.v("MyTag", "Button2 OnClick"); break; } } }; Button btn1=(Button)this.findViewById(id.button1); Button btn2=(Button)this.findViewById(id.button2); btn1.setOnClickListener(handler); btn2.setOnClickListener(handler);
}