实现安卓按键响应的四种方式
程序员文章站
2022-05-15 22:38:20
...
1.设置onClick属性
-
在.xml文件中使用onClick可以指定一个响应函数,这个函数在java中实现,按键被点击后会去调用这个函数
-
设置.xml中的onClick属性,指定一个函数
<Button android:onClick="buttonBeClieked"/>
-
在Java里实现该方法
public void buttonBeClieked(View v){ //View在android.view.View switch (v.getId()){ case R.id.Bu_1: //按键id在R文件中 Toast.makeText(this,"按键1被按下",Toast.LENGTH_SHORT).show();break; case R.id.Bu_2: Toast.makeText(this,"按键2被按下",Toast.LENGTH_SHORT).show();break; } }
❤️ ❤️ ❤️ ❤️ ❤️
- 下面的三种方法都是基于按键监听器OnClickListener实现的,该接口在View类下。
❤️ ❤️ ❤️ ❤️ ❤️
2.新建子类实现接口
-
实现接口类,在类中实现onClick方法
class MyClieckHandler implements View.OnClickListener{ public void onClick(View v) { switch(v.getId()){ case R.id.Bu_1: System.out.println("按键1被按下"); break; case R.id.Bu_2: System.out.println("按键2被按下"); break; } } }
-
MainActivity中代码
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bu1 = (Button)findViewById(R.id.Bu_1); //通过id找按钮 Button bu2 = (Button)findViewById(R.id.Bu_2); bu1.setOnClickListener(new MyClieckHandler()); //按钮点击事件监听器 bu2.setOnClickListener(new MyClieckHandler()); } }
3.匿名内部类实现接口
-
实现OnClickListener中的内部类方法
-
MainActivity:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bu1 = (Button)findViewById(R.id.Bu_1); Button bu2 = (Button)findViewById(R.id.Bu_2); bu1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"按键1被按下",Toast.LENGTH_SHORT).show(); } }); bu2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"按键2被按下",Toast.LENGTH_SHORT).show(); } }); } }
4.在当前类实现接口
-
MainActivity实现OnClickListener接口
public class MainActivity extends Activity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bu1 = (Button)findViewById(R.id.Bu_1); Button bu2 = (Button)findViewById(R.id.Bu_2); bu1.setOnClickListener(this); bu2.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()) { case R.id.Bu_1: Toast.makeText(this, "按键1被按下", Toast.LENGTH_SHORT).show();break; case R.id.Bu_2: Toast.makeText(this, "按键2被按下", Toast.LENGTH_SHORT).show();break; } } }
上一篇: 骁龙855!联想Z5 Pro GT 855版今天10点开启预约
下一篇: 安卓的5种存储方式