如何在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代码中获取这个按钮,设置它的监听事件就可以了。

.xml:
<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

参考技术B 你给按钮绑了监听器没?
按钮点击是通过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);管理员按键又有用了。。那么我两个按钮,应该怎么解决这个问题呢?

本回答被提问者采纳
参考技术C 布局文件里面怎么写的? 点击事件的方法名应该是 android:onClick="btnClick" btnClick追问

其中一个按钮是这样的:

你写的这个方法名后面还有btn Click是什么呀?

追答

就是你在XML文件的Button里面写上android:onClick="btnClick"
属性
在Activity类里面写一个方法 public void btnClick(View view)
switch(view.getId())
case R.id.boss:
"这里写对应的逻辑"

break;



参考技术D android监听事件添加动作的三种方式:
第一种也是最开始就接触的方式,通常在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里设置点击监听事件的主要内容,如果未能解决你的问题,请参考以下文章

android studio中怎么设置点击按钮响应?

android中如何设置处理点击按钮事件

android中如何设置处理点击按钮事件

Android studio按钮跳转代码break

Android Studio 那些事|Activity文件前标识图标显示为 j 而是 c

如何在Android Studio里设置Build Tool版本