如何在android studio里设置点击监听事件
点击没有反应。这是为何,求大神指教。以下是我的代码。carlist是管理员的,waybill是快递员的
public void onClick(View V){ switch(V.getId()){ case R.id.boss: startActivity(new Intent(MainActivity.this,CarList.class)); break; case R.id.deliveryMan: startActivity(new Intent(MainActivity.this,Waybill.class)); break; }} 展开
Android studio 添加点击监听事件有三种方法:
一.匿名内部类
1.先找到那个控件(初始化)
private Button bt1; //onCreate方法外
bt1 = (Button)findViewById(R.id.button1);
2.设置事件监听器
bt1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
System.out.println("我的按钮被点击了");
}
});
二.外部类监听点击事件
1.先找到那个控件(初始化)
private Button bt2; //onCreate方法外
bt2 = (Button)findViewById(R.id.button2);
2.设置事件监听器
bt2.setOnClickListener(new MyOnClickListener(){
public void onClick(View v){
super.onClick(v); //执行父类的onClick
System.out.println("我的按钮被点击了"); //执行子类的onClick
}
});
3.在另一个类中写父类的onClick方法
class MyOnClickListener implements OnClickListener{
public void onClick(View v){
v.setAlpha(0.5); //设置透明的0.5
}
}
//OnClickListener是一个接口
4.点击按钮后会执行服父类的onClick方法和子类的onClick方法,可以让多个按钮都执行相同的父类onClick方法
三.通过实现一个接口的方式实现监听事件
1.先找到那个控件(初始化)
private Button bt3; //onCreate方法外
bt3 = (Button)findViewById(R.id.button3);
2.设置事件监听器
bt3.setOnClickListener(this);
3.让MainActivity.java类实现一个接口
public class MainActivity extends Activity implements OnClickListener{
}
4.在onCreate方法外实现这个接口的要求实现的方法
public void onClick(View v){
System.out.println("第三种方法实现");
}
扩展资料:
如果按钮绑了监听器
按钮点击是通过OnClickListener来实现的
大致的流程应该是这样的
public class MainActivity extends Activity
{
private Button loginButton;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建监听器对象
loginButton = (Button) findViewById(R.id.login_btn);
OnClickListener listener = new ButtonClickListener();
loginButton.setOnClickListener(listener);
}
/**
* 监听器类
*/
class ButtonClickListener implements OnClickListener
{
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.login_btn:
//点击后的逻辑处理
break;
}
}
}
2024-11-22 广告
先在布局文件中添加一个Button,然后再在java代码中获取这个按钮,设置它的监听事件就可以了。
.xml:
<Button android:"@+id/button1"......>
.java:
Button btn = (Button) findViewById(R.id.button1);
btn .setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//你要执行的代码
}
});
这是一种方法
按钮点击是通过OnClickListener来实现的
大致的流程应该是这样的
public class MainActivity extends Activity
{
private Button loginButton;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建监听器对象
loginButton = (Button) findViewById(R.id.login_btn);
OnClickListener listener = new ButtonClickListener();
loginButton.setOnClickListener(listener);
}
/**
* 监听器类
*/
class ButtonClickListener implements OnClickListener
{
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.login_btn:
//点击后的逻辑处理
break;
}
}
}
...........
其中一个按钮是这样的:
你写的这个方法名后面还有btn Click是什么呀?
就是你在XML文件的Button里面写上android:onClick="btnClick"
属性
在Activity类里面写一个方法 public void btnClick(View view){
switch(view.getId()){
case R.id.boss:
"这里写对应的逻辑"
break;
}
}
推荐于2017-09-27 · 知道合伙人软件行家
第一种也是最开始就接触的方式,通常在activity组件的oncreate事件中直接定义,直接动作。这种方式每个控件都定义一次,通常不方便.
Button btn = (Button) findViewById(R.id.myButton);
btn .setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//do something
}
});
第二种通常是在activity组件实现其接口,这样可以多外控件共享一个接口,这样相对方便
public class TestMedia extends Activity implements View.OnClickListener{
Button btn1 = (Button) findViewById(R.id.myButton1);
Button btn2 = (Button) findViewById(R.id.myButton2);
btn1 .setOnClickListener();
btn2 .setOnClickListener();
}
public void onClick(View v) {
switch (v.getId()) {
case R.id. myButton1:
//do something
break;
case R.id. myButton2:
//do something
break;
}
第三种类似第二种,这样的好处在于如果需要实现多个监听接口,这样更清晰
public class TestMedia extends Activity {
Button btn1 = (Button) findViewById(R.id.myButton1);
Button btn2 = (Button) findViewById(R.id.myButton2);
btn1 .setOnClickListener(new ClickEvent());
btn2 .setOnClickListener(new ClickEvent());
}
class ClickEvent implements View.OnClickListener
public void onClick(View v) {
switch (v.getId()) {
case R.id. myButton1:
//do something
break;
case R.id. myButton2:
//do something
break;
}