標籤:roi prot method cas java auto width cte int
Button點擊事件:大概可以分為以下幾種:
- 匿名內部類
- 定義內部類,實現OnClickListener介面
- 定義的構造方法
- 用Activity實現OnClickListener介面
- 指定Button的onClick的屬性
首先定義一個帶button的xml布局檔案
activity_main.xml:
<Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="點擊事件" />
然後再寫Java代碼:
1.匿名內部類
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 6 bt = (Button) findViewById(R.id.bt1); 7 //1.匿名內部類 8 bt.setOnClickListener(new OnClickListener() { 9 10 @Override11 public void onClick(View v) {12 // TODO Auto-generated method stub13 Log.i("匿名內部類", "點擊事件");14 }15 });16 }
2.定義內部類,實現OnClickListener介面
1 public class MainActivity extends Activity{ 2 3 private Button bt; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 bt = (Button) findViewById(R.id.bt);11 12 bt.setOnClickListener(new MyListener());13 }14 15 //定義內部類,實現OnClickListene介面16 class MyListener implements OnClickListener{17 18 @Override19 public void onClick(View v) {20 // TODO Auto-generated method stub21 Log.i("定義內部類,實現OnClickListene介面", "點擊事件");22 }23 }24 }
3.定義的構造方法
1 public class MainActivity extends Activity{ 2 3 private Button bt; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 bt = (Button) findViewById(R.id.bt);11 12 myListener();13 }14 15 //定義構造方法16 private void myListener() {17 // TODO Auto-generated method stub18 bt.setOnClickListener(new OnClickListener() {19 20 @Override21 public void onClick(View v) {22 // TODO Auto-generated method stub23 Log.i("定義構造方法", "點擊事件");24 }25 });26 }27 }
4.用Activity實現OnClickListener介面
1 public class MainActivity extends Activity implements OnClickListener { 2 3 private Button bt; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 bt = (Button) findViewById(R.id.bt);11 bt.setOnClickListener(this);12 }13 14 15 //用Activity實現OnClickListener介面16 @Override17 public void onClick(View v) {18 // TODO Auto-generated method stub19 Log.i("用Activity實現OnClickListener介面", "點擊事件");20 }21 22 }
5.指定Button的onClick的屬性:
先在layout檔案中指定onClick屬性,然後到Activity中實現這個onButtonClick方法
布局檔案:
1 <Button2 3 android:layout_width="wrap_content"4 android:layout_height="wrap_content"5 android:onClick="click"6 android:text="點擊事件" />
Java代碼:
1 public class MainActivity extends Activity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 } 9 10 //5指定onClick屬性方式11 public void click(View v) {12 // TODO Auto-generated method stub13 Log.i("指定onClick屬性方式","點擊事件"); 14 }15 }
另外,多個按鈕點擊事件的處理,以指定onClick屬性方式為例,擷取其資源id,通過資源id,可以判斷使用者點擊了哪個按鈕了。
布局檔案:
<Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="點擊事件1" /> <Button android:id="@+id/bt2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="點擊事件2" /> <Button android:id="@+id/bt3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="點擊事件3" />/> <Button android:id="@+id/bt4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="點擊事件4" />
Java代碼:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //指定onClick屬性方式 //傳人的View對象,就是使用者按下的那個按鈕對象 public void click(View v) { // TODO Auto-generated method stub //擷取組件的資源id int id = v.getId(); switch (id) { case R.id.bt1: Log.i("指定onClick屬性方式","bt1點擊事件"); break; case R.id.bt2: Log.i("指定onClick屬性方式","bt2點擊事件"); break; case R.id.bt3: Log.i("指定onClick屬性方式","bt3點擊事件"); break; case R.id.bt4: Log.i("指定onClick屬性方式","bt4點擊事件"); break; default: break; } }}
Android--Android studio --Button點擊事件的寫法