user7906652
user7906652

Reputation:

How to initialize many Views in ButterKnife in Android

I want use ButterKnife in my Project. I use many EditText and for initialize this editTexts I use this code :

@BindView(R.id.registerCountryEdtTxt)
EditText countryEdt;

@BindView(R.id.registerDateBirthEdtTxt)
EditText birthDayEdt;

@BindView(R.id.registerGenderEdtTxt)
EditText genderEdt;

@BindView(R.id.registerFullnameEdtTxt)
EditText fullnameEdt;

@BindView(R.id.registerEmailEdtTxt)
EditText emailEdt;

@BindView(R.id.registerUsernameEdtTxt)
EditText usernameEdt;

@BindView(R.id.registerPasswordEdtTxt)
EditText passwordEdt;

@BindView(R.id.registerFacebookEdtTxt)
EditText facebookEdt;

For onClick I want use many views one click method, how can I use one @BindView for many views?

@OnClick({R.id.registerDateBirthInptLay, R.id.registerDateBirthEdtTxt})
void selectBirthDay() {

Upvotes: 0

Views: 1035

Answers (2)

jmarkstar
jmarkstar

Reputation: 1335

Well, you could try this:

Implement OnClickListener on your activity.

public class YourActivity extends Activity implements OnClickListener{

//your edittexts

protected void onCreate(@Nullable Bundle savedInstanceState) {
edittext1.setOnClickListener(this);
edittext2.setOnClickListener(this);
edittext3.setOnClickListener(this);
...
}

@Override
public void onClick(View view) {
        //your code
}

}

Upvotes: 0

Luiz Fernando Salvaterra
Luiz Fernando Salvaterra

Reputation: 4182

You can group multiple Views into a List or array.

@BindViews({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews;

And to access these Views, just access the position:

nameViews.get(0).setText("Text");

Upvotes: 5

Related Questions