我有~10个按钮,我想通过调用方法来初始化它们。我的意思是现在我有很多:
button= (Button) findViewById(R.id.button);
button1= (Button) findViewById(R.id.button1);
我希望有一个像这样的方法,并为每个按钮初始化调用它:
private void initialize(Button mybutton){
mybutton= (Button) findViewById(R.id.mybutton);
}
答案 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
declaration
和ButterKnife
的示例