Three ways to implements an Android OnClickListener
2016-03-05 03:17
489 查看
Suppose we have three buttons:
The simplest example of OnClickListener. First, we create an instance of View.OnClickListener, then inside, we add a function named onClick, then we use a switch to decide what shall we do as a button clicked.
Attention : The listener should be implemented outside the function onCreate
The code below is the second implementation of OnClickListener.
Attention : This OnClickListener should be implemented in the function onCreate. Because, we expect that it will be created when the activity has started.
Otherwise, this is the third OnClickListener.
In this example, we just overwrite the onClick function of activity. Many people prefer to use this kind of implementation
public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button0 = (Button)findViewById(R.id.btn0); Button button1 = (Button)findViewById(R.id.btn1); Button button2 = (Button)findViewById(R.id.btn2); } }
The simplest example of OnClickListener. First, we create an instance of View.OnClickListener, then inside, we add a function named onClick, then we use a switch to decide what shall we do as a button clicked.
Attention : The listener should be implemented outside the function onCreate
public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button0 = (Button)findViewById(R.id.btn0); Button button1 = (Button)findViewById(R.id.btn1); Button button2 = (Button)findViewById(R.id.btn2); } //Here's the first implementation of OnClickListener private View.OnClickListener mButtonListener = new View.OnClickListener(){ public void onClick(View v){ //onClick **must** be implemented in OnClickListener //Once the activity was touched, this function will be called. switch(v.getId()){ case R.id.btn0: //When the button0 was touched, do sth here break; case R.id.btn1: //When the button1 was touched, do sth here break; case R.id.btn2: //When the button2 was touched, do sth here break; default: break; } } }
The code below is the second implementation of OnClickListener.
Attention : This OnClickListener should be implemented in the function onCreate. Because, we expect that it will be created when the activity has started.
public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button0 = (Button)findViewById(R.id.btn0); Button button1 = (Button)findViewById(R.id.btn1); Button button2 = (Button)findViewById(R.id.btn2); button0.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ // Do sth when button0 was clicked. } }); //The same for the others. } }
Otherwise, this is the third OnClickListener.
In this example, we just overwrite the onClick function of activity. Many people prefer to use this kind of implementation
public class MainActivity extends Activity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button0 = (Button)findViewById(R.id.btn0); Button button1 = (Button)findViewById(R.id.btn1); Button button2 = (Button)findViewById(R.id.btn2); } @Override public void onClick(View v){ switch(v.getId()){ case R.id.btn0: //When the button0 was touched, do sth here break; case R.id.btn1: //When the button1 was touched, do sth here break; case R.id.btn2: //When the button2 was touched, do sth here break; default: break; } } }
相关文章推荐
- Android AsyncTask基础
- 01Android学习从零单排之Activity
- Android View中getWidth方法
- android设计模式之---状态模式
- Android开发60需要注意的问题
- Android下设置drawableleft导入的图片大小
- Android Studio中如何创建自己的库?
- 2016-3-4
- Gradle
- android 注解 butterknife 用法
- Android开发中iconify的使用
- Android优化杂谈
- Android ListView滚动条配置完全解析
- android设计模式之---最佳单例模式==静态内部类单例模式
- Android Studio——签名打包
- Android 使用Fragment界面向下跳转并一级级返回
- Android Studio 中Locat使用包名过滤无法显示的问题
- Android性能优化——渲染、内存、电源优化
- System Permissions --1.4
- android开发JNI之高级篇