以从SecondActivity跳转到MainActivity为监听逻辑
一、直接在xml中指定
1.在xml的Button控件中添加onClick=“方法名”
<Button
android:id="@+id/jumpBackButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转到MainActivity"
android:onClick="Jump"
app:layout_constraintStart_toStartOf="@+id/appCompatTextView"
app:layout_constraintTop_toTopOf="@+id/appCompatTextView" />
2.在Activity中书写方法:public void 方法名(View view){……},无需实现监听器接口就可以调用该方法去响应。
public void Jump(View view){
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
startActivity(intent);
}
二、采用匿名内部类的方式
1.定义一个Button
private Button jumpBackButton ;
2.初始化Button控件(写在onCreate里)
jumpBackButton = (Button) findViewById(R.id.jumpBackButton);
//也可以直接这么写:Button jumpBackButton = (Button) findViewById(R.id.jumpBackButton);
3.为Button控件设置监听(写在onCreate里)
jumpBackButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
startActivity(intent);
}
});
三、采用内部类的方式
采用内部类的方式与匿名内部类的区别在于OnClickListener定义的位置
1.定义Button和OnClickListener
private Button jumpBackButton ;
private final class MyOnClickListener implements View.OnClickListener {
public void onClick(View v) {
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
startActivity(intent);
}
}
2.为Button控件设置监听(写在onCreate里)
jumpBackButton.setOnClickListener(new MyOnClickListener());
四、让Activity直接使用OnClickListener的接口
1.定义Button,直接写入监听逻辑
public class SecondActivity extends AppCompatActivity implements View.OnClickListener {
private Button jumpBackButton ;
@Override
public void onClick(View v) {
Intent intent = new Intent(SecondActivity.this,MainActivity.class);
startActivity(intent);
}
}
2.为Button控件设置监听(写在onCreate里)
jumpBackButton.setOnClickListener(this);
用一个监听器实现多个按钮的监听功能
- 当存在多个Button时,为每个Button都设置监听器会使代码十分冗余,因此,我们需要仅用一个监听器就实现多个按钮的监听功能。
1、先在布局文件中添加四个Button控件
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btn_1"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="Jump"
android:text="按钮1" />
<Button
android:id="@+id/btn_2"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="Jump"
android:text="按钮2" />
<Button
android:id="@+id/btn_3"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="Jump"
android:text="按钮3" />
<Button
android:id="@+id/btn_4"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:onClick="Jump"
android:text="按钮4" />
</LinearLayout>
2、采用上述方法一:直接调用Jump
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Jump(View v) {
switch (v.getId()) {
case R.id.btn_1:
Toast.makeText(MainActivity.this, "你选择了按钮1", Toast.LENGTH_LONG).show();
break;
case R.id.btn_2:
Toast.makeText(MainActivity.this, "你选择了按钮2", Toast.LENGTH_LONG).show();
break;
case R.id.btn_3:
Toast.makeText(MainActivity.this, "你选择了按钮3", Toast.LENGTH_LONG).show();
break;
case R.id.btn_4:
Toast.makeText(MainActivity.this, "你选择了按钮4", Toast.LENGTH_LONG).show();
break;
}
}
}
3、采用上述方法四:Activity直接使用OnClickListener的接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) findViewById(R.id.btn_1);
Button button2 = (Button) findViewById(R.id.btn_2);
Button button3 = (Button) findViewById(R.id.btn_3);
Button button4 = (Button) findViewById(R.id.btn_4);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_1:
Toast.makeText(MainActivity.this, "你选择了按钮1", Toast.LENGTH_LONG).show();
break;
case R.id.btn_2:
Toast.makeText(MainActivity.this, "你选择了按钮2", Toast.LENGTH_LONG).show();
break;
case R.id.btn_3:
Toast.makeText(MainActivity.this, "你选择了按钮3", Toast.LENGTH_LONG).show();
break;
case R.id.btn_4:
Toast.makeText(MainActivity.this, "你选择了按钮4", Toast.LENGTH_LONG).show();
break;
}
}
}