多个按钮初始化

Multiple button initialization

我有大约 10 个按钮,我想通过调用一个方法来初始化它们。我的意思是现在我有很多:

button= (Button) findViewById(R.id.button);
button1= (Button) findViewById(R.id.button1);

我想要一个这样的方法并在每个按钮初始化时调用它:

private void initialize(Button mybutton){
  mybutton= (Button) findViewById(R.id.mybutton);
}
private Button initialize(int ID){
  return (Button) findViewById(ID);
}

并像这样使用它

button1= initialize(R.id.button1);

尝试这种方式传递您的 Button 以及您的 Button

ID

像这样改变initialize

private void initialize(Button mybutton, int ID){
  mybutton= (Button) findViewById(ID);
}

并像这样调用您的 initialize 方法

initialize(button,R.id.button)

在此方法中传递所有按钮及其各自的 ID:

private void initialize(){
  button= (Button) findViewById(R.id.button);
  button1= (Button) findViewById(R.id.button1);
  ...
}

并在您的 onCreate() 方法中调用 initialize()

这样做

ArrayList<Button> buttons=new ArrayList<>();

String[] buttonIds = {R.id.btn1,R.id.btn2,R.id.btn3};

for(int i=0;i<buttonIds.length-1;i++)
{
    Button b = (Button) findViewById(buttonIds[i]);
    buttons.add(b);
}

我认为使用 ButterKnife 更好。你可以在 ButterKnife 上做个很好的笔记 here

  @BindView(R.id.title) TextView title;
  @BindView(R.id.subtitle) TextView subtitle;
  @BindView(R.id.footer) TextView footer;

这是 initialisationdeclaration 使用 ButterKnife

的示例