java 按钮 监听_Button的四种监听方式
Button按鈕設(shè)置點擊的四種監(jiān)聽方式
注:加粗放大的都是改變的代碼
1.使用匿名內(nèi)部類的形式進行設(shè)置
使用匿名內(nèi)部類的形式,直接將需要設(shè)置的onClickListener接口對象初始化,內(nèi)部的onClick方法會在按鈕被點擊的時候執(zhí)行
第一個活動的java代碼:
1 packagecom.sanlian.buttontest;2
3 importandroid.content.Intent;4 importandroid.support.v7.app.AppCompatActivity;5 importandroid.os.Bundle;6 importandroid.view.View;7 importandroid.widget.Button;8
9 public class MainActivity extendsAppCompatActivity {10
11 @Override12 protected voidonCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.activity_main);15 //通過id找到關(guān)聯(lián)布局中的view控件
16 Button btn =(Button) findViewById(R.id.btn);17 //給Button按鈕添加點擊的監(jiān)聽
18 btn.setOnClickListener(newView.OnClickListener() {19 @Override20 //只要當(dāng)前的設(shè)置的監(jiān)聽器被觸發(fā),這個方法就會被執(zhí)行
21 public voidonClick(View v) {22 startActivity(new Intent(MainActivity.this,SecondAty.class));23 }24 });
25 }26 }
第一個活動的xml代碼:
1 <?xml version="1.0" encoding="utf-8"?>
2
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:paddingBottom="@dimen/activity_vertical_margin"
7 android:paddingLeft="@dimen/activity_horizontal_margin"
8 android:paddingRight="@dimen/activity_horizontal_margin"
9 android:paddingTop="@dimen/activity_vertical_margin"
10 tools:context="com.sanlian.buttontest.MainActivity"
11 >
12
13
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:text="點我"/>
18
第二個活動的java代碼:
1 packagecom.sanlian.buttontest;2
3 importandroid.support.v7.app.AppCompatActivity;4 importandroid.os.Bundle;5 importandroid.text.SpannableString;6 importandroid.text.style.StyleSpan;7 importandroid.text.style.TypefaceSpan;8 importandroid.widget.TextView;9
10 public class SecondAty extendsAppCompatActivity {11
12 @Override13 protected voidonCreate(Bundle savedInstanceState) {14 super.onCreate(savedInstanceState);15 setContentView(R.layout.activity_second_aty);16
17
18
19 }20 }
第二個活動的xml代碼:
程序運行結(jié)果截圖:
2.在xml文件中定義onClick屬性,java代碼中對應(yīng)方法
在xml中定義onClick屬性。屬性中對應(yīng)的值需要在java代碼中編寫對應(yīng)的方法名。
注意:參數(shù)中的View必須-----》方法類似于:public void xxx(View v)
第一個活動的java代碼 :
1 packagecom.sanlian.buttontest;2
3 importandroid.content.Intent;4 importandroid.support.v7.app.AppCompatActivity;5 importandroid.os.Bundle;6 importandroid.view.View;7 importandroid.widget.Button;8
9 public class MainActivity extendsAppCompatActivity {10
11 @Override12 protected voidonCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.activity_main);15 }16 public voidskip(View v){17 startActivity(new Intent(MainActivity.this,SecondAty.class));18 }19
20
21 }
第一個活動的xml代碼:
1 <?xml version="1.0" encoding="utf-8"?>
2
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:paddingBottom="@dimen/activity_vertical_margin"
7 android:paddingLeft="@dimen/activity_horizontal_margin"
8 android:paddingRight="@dimen/activity_horizontal_margin"
9 android:paddingTop="@dimen/activity_vertical_margin"
10 tools:context="com.sanlian.buttontest.MainActivity"
11 >
12
13
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:onClick="skip"
18 android:text="點我"/>
19
其他的和匿名內(nèi)部類的方法一樣。
3.Activity 實現(xiàn)onClickListener接口
在給Button按鈕設(shè)置點擊的監(jiān)聽的時候直接讓當(dāng)前的Activity實現(xiàn)onClickListener接口,這樣傳入的監(jiān)聽對象就可以直接使用當(dāng)前Activity.this
第一個活動的java代碼:
1 packagecom.sanlian.buttontest;2
3 importandroid.content.Intent;4 importandroid.support.v7.app.AppCompatActivity;5 importandroid.os.Bundle;6 importandroid.view.View;7 importandroid.widget.Button;8
9 public class MainActivity extends AppCompatActivityimplementsView.OnClickListener {10
11 @Override12 protected voidonCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.activity_main);15 //找到控件的id,也叫控件的初始化
16 Button btn =(Button) findViewById(R.id.btn);17 //給Button按鈕設(shè)置監(jiān)聽
18 btn.setOnClickListener(this);19 }20
21
22
23 public voidonClick(View v) {24 //啟動另一個activity
25 startActivity(new Intent(MainActivity.this,SecondAty.class));26
27 //使用swith查找要點擊的按鈕的id
28 /*switch (v.getId()){29 case R.id.btn:30 startActivity(new Intent(MainActivity.this,SecondAty.class));31 break;32 default:33 break;34 }*/
35 }36 }
第一個活動的xml代碼:
1 <?xml version="1.0" encoding="utf-8"?>
2
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:paddingBottom="@dimen/activity_vertical_margin"
7 android:paddingLeft="@dimen/activity_horizontal_margin"
8 android:paddingRight="@dimen/activity_horizontal_margin"
9 android:paddingTop="@dimen/activity_vertical_margin"
10 tools:context="com.sanlian.buttontest.MainActivity"
11 >
12
13
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:text="點我"/>
18
其他的和第一個方法一樣
4.其他類實現(xiàn)onClickListener接口
讓另外一個類來實現(xiàn)onClickListener接口。這樣如果控件在需要設(shè)置點擊監(jiān)聽的時候,直接傳入該類的對象即可。
第一個活動的java代碼:
1 packagecom.sanlian.buttontest;2
3 importandroid.content.Intent;4 importandroid.support.v7.app.AppCompatActivity;5 importandroid.os.Bundle;6 importandroid.util.Log;7 importandroid.view.View;8 importandroid.widget.Button;9
10 public class MainActivity extendsAppCompatActivity{11
12 @Override13 protected voidonCreate(Bundle savedInstanceState) {14 super.onCreate(savedInstanceState);15 setContentView(R.layout.activity_main);16 //找到控件的id,也叫控件的初始化
17 Button btn =(Button) findViewById(R.id.btn);18 Button btn2 =(Button) findViewById(R.id.btn2);19 //給Button按鈕設(shè)置監(jiān)聽
20 myListener mylistener = newmyListener();21 btn.setOnClickListener(mylistener);22 btn2.setOnClickListener(mylistener);23 }24 class myListener implementsView.OnClickListener {25 @Override26 //參數(shù)v:就是觸發(fā)點擊的View控件。在這里就是被點擊了Button按鈕
27 public voidonClick(View v) {28 switch(v.getId()){29 caseR.id.btn:30 Log.i("TAG","你點擊了button1按鈕");31 break;32 caseR.id.btn2:33 Log.i("TAG","你點擊了button2按鈕");34 }3536 }37 }38
39 }
第一個活動的xml代碼:
1 <?xml version="1.0" encoding="utf-8"?>
2
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:paddingBottom="@dimen/activity_vertical_margin"
7 android:paddingLeft="@dimen/activity_horizontal_margin"
8 android:paddingRight="@dimen/activity_horizontal_margin"
9 android:paddingTop="@dimen/activity_vertical_margin"
10 tools:context="com.sanlian.buttontest.MainActivity"
11 >
12
13
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:text="點我"/>
18
19
21 android:layout_width="wrap_content"
22 android:layout_height="wrap_content"
23 android:text="點我"/>
24
25
26
實現(xiàn)的結(jié)果截圖:
總結(jié)
以上是生活随笔為你收集整理的java 按钮 监听_Button的四种监听方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平民怎么被发现有军事天赋的
- 下一篇: java编程50_java经典50编程题