私は ImageButton plus を持っています。クリックすると、ビューを膨張させる必要があります。
私の問題は、私が performClick を使用すると、Imagebutton が 2 回呼び出され、2 つのインフレートが同時に実行されることです。
なぜこれが起こるのかわかりません。
これが私のコードの一部です:
private ImageButton addPhone;
addPhone = (ImageButton)view.findViewById(R.id.ac_ibAddClientPhone);
addPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
inflationFields = new InflatationFields(getActivity());
inflationFields.inflateNewField("phone", containerPhone, view, adapterPhone);
}
});
コードの別の部分でボタンを呼び出し、クリックを実行してクリックしようとします
try{
if(ccPhone.moveToFirst())
do{
if(flag_first==true){
phone = ccPhone.getString(ccPhone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.d(ClientEditContact.class.getName(), "PHONE: " +phone);
type = ccPhone.getInt(ccPhone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
etPhone = (EditText)viewPrincipal.findViewById(R.id.ac_etAddClientPhone);
etPhone.setText(phone + "" +etPhone.getTag().toString());
spPhone.setSelection(convertTypeToIdSpinner(type));
flag_first=false;
}
else if(flag_first == false){
addPhone.performClick();
phone = ccPhone.getString(ccPhone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
type = ccPhone.getInt(ccPhone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
etPhone = (EditText)viewContainerPhone.findViewWithTag("etTagPhone" + count);
etPhone.setText(phone + "" + etPhone.getTag().toString());
count = count + 1;
if(count==ccPhone.getCount()){
break;
}
}
}while(ccPhone.moveToNext());
Log.d(ClientEditContact.class.getName(), "LAST PHONE ---> " +phone);
}finally{
if(ccPhone != null && ! ccPhone.isClosed()){
ccPhone.close();
}
}
誰でも何か考えがありますか?