Big Nerd Ranch Android为听众使用匿名内部类?

时间:2015-01-11 19:16:45

标签: android

采用这通常是一种好习惯吗?

我正在学习这些教程,并进入了实现按钮监听器的部分:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_quiz);

        mTrueButton = (Button) findViewById(R.id.true_button);

        //and here is the anonymous inner class
        mTrueButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
    }

我最好学习这种风格,还是有其他方式我应该为了良好的练习而学习这种方法?这似乎与我对OOP的基本理解有点相反,如果有意义的话,事物似乎是......分离和模块化的。

1 个答案:

答案 0 :(得分:1)

是的,还有另一种我经常喜欢的方式(特别是在大型项目中),你的类可以实现监听器

所以你的Activity/Fragment可以这样声明

public class MyActivity implements View.OnClickListener{

和你的视图对象,在这种情况下,按钮会以这种方式设置它的监听器

mTrueButton.setOnClickListener(this)

然后您将拥有另一个名为onClick()的类,其中所有可点击的视图元素现在都可以拥有其代码

@Override
public void onClick(View v){

     switch(v.getId()){
          case R.id.true_button:

          break;
     }


}