多按钮初始化

时间:2017-11-24 07:01:32

标签: android button findviewbyid

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

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

我希望有一个像这样的方法,并为每个按钮初始化调用它:

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

5 个答案:

答案 0 :(得分:5)

private Button initialize(int ID){
  return (Button) findViewById(ID);
}

并像这样使用

button1= initialize(R.id.button1);

答案 1 :(得分:2)

尝试通过这种方式传递Button以及ID的{​​{1}}

像这样更改Button

initialize

并像这样调用您的private void initialize(Button mybutton, int ID){ mybutton= (Button) findViewById(ID); } 方法

initialize

答案 2 :(得分:1)

这样做

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);
}

答案 3 :(得分:0)

使用此方法将所有按钮及其各自的ID传递出去:

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

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

答案 4 :(得分:0)

我认为最好使用 ButterKnife 。你可以在ButterKnife here

上有一个很好的笔记
  @BindView(R.id.title) TextView title;
  @BindView(R.id.subtitle) TextView subtitle;
  @BindView(R.id.footer) TextView footer;

这是使用initialisation

declarationButterKnife的示例