在安卓中按钮点击操作有三种方法,现在记录下来学习:
第一种:
//第一种按钮响应方法 Button btn1 =(Button) findViewById(R.id.btn1); btn1.setOnClickListener(new OnClickListener(){ public void onClick(View v){ System.out.println("第一个按钮被点击了"); } });
第二种方法,使用this,此时要在mainactivity 继承implements OnClickListener:
public class MainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第二种响应方法(mainActivity 要继承)implements OnClickListener Button btn2 =(Button) findViewById(R.id.btn2); btn2.setOnClickListener(this); } public void onClick(View v){ System.out.println("第2个按钮被点击了"); } .....
第三种方法:
此时没有用到资源ID,用到了按钮的OnClick属性,示例:
<!-- 第三个按钮没有ID --> <Button android:onClick="clickMe" android:layout_width="242dp" android:layout_height="64dp" android:text="按钮三" />
在.java中使用:
//第三种点击同名方法:使用了android:click="clickMe" public void clickMe(View v){ System.out.println("第三个按钮:不要点我了"); }
第三种方法推广:
此时,按钮多个同时出现,点击时都用按钮的OnClick的同一个方法:
按钮:
<Button android:id="@+id/btn11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickGroup" android:text="按钮11" /> <Button android:id="@+id/btn12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickGroup" android:text="按钮12" /> <Button android:id="@+id/btn13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickGroup" android:text="按钮13" />
.java代码:
//第三种的推广:使用了android:click="clickGroup" //View:系统会把触发这个方法的那个组件的对象作为view对象传进来 public void clickGroup(View v){ //通过对view对象的判断,就可以知道用户点击的到底是哪一个按钮 //拿到按钮的id int id = v.getId(); switch (id) { case R.id.btn11: System.out.println("按钮11点我了"); break; case R.id.btn12: System.out.println("按钮12点我了"); break; case R.id.btn13: System.out.println("按钮13点我了"); break; } }
总代码:
package com.swust.click; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一种按钮响应方法 Button btn1 =(Button) findViewById(R.id.btn1); btn1.setOnClickListener(new OnClickListener(){ public void onClick(View v){ System.out.println("第一个按钮被点击了"); } }); //第二种响应方法(mainActivity 要继承)implements OnClickListener Button btn2 =(Button) findViewById(R.id.btn2); btn2.setOnClickListener(this); } public void onClick(View v){ System.out.println("第2个按钮被点击了"); } //第三种点击同名方法:使用了android:click="clickMe" public void clickMe(View v){ System.out.println("第三个按钮:不要点我了"); } //第三种的推广:使用了android:click="clickGroup" //View:系统会把触发这个方法的那个组件的对象作为view对象传进来 public void clickGroup(View v){ //通过对view对象的判断,就可以知道用户点击的到底是哪一个按钮 //拿到按钮的id int id = v.getId(); switch (id) { case R.id.btn11: System.out.println("按钮11点我了"); break; case R.id.btn12: System.out.println("按钮12点我了"); break; case R.id.btn13: System.out.println("按钮13点我了"); break; } } }
前台使用了线性布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.swust.click.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/btn1" android:layout_width="242dp" android:layout_height="64dp" android:text="按钮一" /> <Button android:id="@+id/btn2" android:layout_width="242dp" android:layout_height="64dp" android:text="按钮二" /> <!-- 第三个按钮没有ID --> <Button android:onClick="clickMe" android:layout_width="242dp" android:layout_height="64dp" android:text="按钮三" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tishi" /> <Button android:id="@+id/btn11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickGroup" android:text="按钮11" /> <Button android:id="@+id/btn12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickGroup" android:text="按钮12" /> <Button android:id="@+id/btn13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickGroup" android:text="按钮13" /> </LinearLayout>
原文:http://www.cnblogs.com/shuqingstudy/p/4874797.html