安卓开发基础:给控件设置监听事件的几种方法

您所在的位置:网站首页 安卓按钮监听事件怎么设置 安卓开发基础:给控件设置监听事件的几种方法

安卓开发基础:给控件设置监听事件的几种方法

2024-07-16 18:34| 来源: 网络整理| 查看: 265

首先是界面文件xml,以下的所有例子都是使用的这个界面文件:

经过一段时间的安卓开发经验,本人发现给控件设置监听事件有大致一下三种:

一:

第一种方法是最经常使用的,也是很方便的

首先绑定控件

Button btn1 = (Button)findViewById(R.id.btn1); 之后设置监听事件 btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"this is btn1",Toast.LENGTH_SHORT).show(); } }); 二: 第二种也是很常用的方式 首先在界面文件中的控件上写一个OnClick属性 然后在java代码中以这个属性作为函数名,写一个响应函数即可。 public void btn1_click(View view){ Toast.makeText(MainActivity.this,"this is btn1",Toast.LENGTH_SHORT).show(); } 使用这种方式的时候要注意,这个函数一定得是public类型的,如果写成private类型的,那么无法成功设置监听事件。 三: 当我们要给界面上的多个空间绑定监听事件的时候,显然像以上两种方式都不是明智之举,难道我界面有一百个控件,你就设置一百个监听事件吗?这个时候第三种方式就很好使用了 首先,在创建这个activity的时候让她实现OnClickListener这个接口 public class MainActivity extends AppCompatActivity implements View.OnClickListener{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); btn3 = (Button)findViewById(R.id.btn3); btn4 = (Button)findViewById(R.id.btn4); } } 然后就要实现这个接口的方法Onclick(View v) public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Toast.makeText(MainActivity.this,"this is btn1",Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(MainActivity.this,"this is btn2",Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(MainActivity.this,"this is btn3",Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(MainActivity.this,"this is btn4",Toast.LENGTH_SHORT).show(); break; } } 写完这个方法之后然后在onCreate方法中以此给每个添加监听器: btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); 完整的代码是这样的 public class MainActivity extends Activity implements View.OnClickListener{ private Button btn1,btn2,btn4,btn3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); btn3 = (Button)findViewById(R.id.btn3); btn4 = (Button)findViewById(R.id.btn4); btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); btn4.setOnClickListener(this); @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Toast.makeText(MainActivity.this,"this is btn1",Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(MainActivity.this,"this is btn2",Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(MainActivity.this,"this is btn3",Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(MainActivity.this,"this is btn4",Toast.LENGTH_SHORT).show(); break; } } } 或者也可以自己定义一个内部类(注意哦!!!这里最好是内部类哦,不然你想使用activity的某些资源还是会很麻烦的)来实现OnClick这个接口: public class ClickListener implements View.OnClickListener{ @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Toast.makeText(MainActivity.this,"this is btn1",Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(MainActivity.this,"this is btn2",Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(MainActivity.this,"this is btn3",Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(MainActivity.this,"this is btn4",Toast.LENGTH_SHORT).show(); break; } } }   然后再onCreate中实例化一个ClickListener,给每个控件设置监听 ClickListener listener = new ClickListener(); btn1.setOnClickListener(listener); btn2.setOnClickListener(listener); btn3.setOnClickListener(listener); btn4.setOnClickListener(listener); 完整的代码如下: public class MainActivity extends Activity{ private Button btn1,btn2,btn4,btn3; private ClickListener listener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); btn3 = (Button)findViewById(R.id.btn3); btn4 = (Button)findViewById(R.id.btn4); listener = new ClickListener(); btn1.setOnClickListener(listener); btn2.setOnClickListener(listener); btn3.setOnClickListener(listener); btn4.setOnClickListener(listener); } public class ClickListener implements View.OnClickListener{ @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Toast.makeText(MainActivity.this,"this is btn1",Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(MainActivity.this,"this is btn2",Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(MainActivity.this,"this is btn3",Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(MainActivity.this,"this is btn4",Toast.LENGTH_SHORT).show(); break; } } } }

那么这就是给控件=设置监听事件的几种方法,如果你还有第四种或者第五种方法欢迎和小交流哦!!

 

 

 

Ps:本文中若某些语言说的不够准确的话,请各位看官不吝赐教!!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3