最小化点击侦听器的代码

时间:2016-03-29 19:05:34

标签: android

我是Android的新手,我很厌倦在我的每项活动中实施View.OnClickListener。我需要一种方法,可以轻松地为我做。

3 个答案:

答案 0 :(得分:0)

您可以使用视图注入,这样您就可以简单地编写方法并将其声明为布局上某些视图的onClick。
请参阅 - DaggerRoboJuice

答案 1 :(得分:0)

您可以使用ButterKnife

然后使用

@OnClick(R.id.submit)
public void submit(View view) {
  // TODO submit data to server...
}

答案 2 :(得分:0)

您可以通过为所有活动创建abstract classextend来实现此目的。通常称为基类

以下是代码:

public abstract class BaseActivity extends Activity implements View.OnClickListener{

    public void attachClickListener(int... views){
        for(int i = 0; i<views.length;i++){
            findViewById(views[i]).setOnClickListener(this);
        }
    }

    @Override
    public void onClick(View v) {}

}

将两个方法保留在基类中,并从基类扩展的活动类中重写它。

attachClickListener方法将遍历您将在活动类中作为参数发送的所有ID。

以下是您的活动类的代码:

@Override
attachClickListener(R.id.yourViewFromXml1, R.id.viewFromXml2, R.id.viewFromXml3 );

您可以添加无限ID。

@Override
OnClick(View v){
    switch(v.getId())
    case R.id.yourViewFromXml1 : // do your stuff;
                                break;
    case R.id.ViewFromXml2 : // do your stuff;
                                break;
}