如何在android studio里设置点击监听事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android studio里设置点击监听事件相关的知识,希望对你有一定的参考价值。
我想在main activity里设置两个button,一个是boss,一个是deliveryMan,点击分别出现两个相应的界面。结果是出现了这个界面
点击没有反应。这是为何,求大神指教。以下是我的代码。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;
参考技术A先在布局文件中添加一个Button,然后再在java代码中获取这个按钮,设置它的监听事件就可以了。
<Button android:"@+id/button1"......>
.java:
Button btn = (Button) findViewById(R.id.button1);
btn .setOnClickListener(new View.OnClickListener()
public void onClick(View v)
//你要执行的代码
);
这是一种方法
我的xml里是这样的、但是java里这样写一片错啊。我前面是这样写的public class MainActivity extends FragmentActivity
按钮点击是通过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;
...........追问
谢谢你写了这么多,可是我又出现了一个奇怪的现象。。。我点击快递员可以进入下一页,可是点击管理员不行了,没法弹出来下一页。。。为什么啊。就是点击代码中的boss不行,deliveryMan可以。。。我刚才试了一下,删掉这句loginButton = (Button) findViewById(R.id.deliveryMan);管理员按键又有用了。。那么我两个按钮,应该怎么解决这个问题呢?
其中一个按钮是这样的:
你写的这个方法名后面还有btn Click是什么呀?
就是你在XML文件的Button里面写上android:onClick="btnClick"
属性
在Activity类里面写一个方法 public void btnClick(View view)
switch(view.getId())
case R.id.boss:
"这里写对应的逻辑"
break;
第一种也是最开始就接触的方式,通常在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;
以上是关于如何在android studio里设置点击监听事件的主要内容,如果未能解决你的问题,请参考以下文章