Criei um BaseAdapter pra exibir um set de Views.
Pelo que observei no debugger, toda vez que clico no EditText, o sistema entra novamente na função getView então gera a View de novo e não permite setar foco no EditText clicado.
Provavelmente deixei algo despercebido.
Poderiam me ajudar?
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_blank, container, false);
// Criar e popular o list!
addressList = new ArrayList<>();
addressList.add(new Address());
ListView lsv_address = (ListView) view.findViewById(R.id.blank_listview);
addressAdapter = new AddressAdapter(getContext(), addressList);
addressAdapter.setAddOnClick(this);
lsv_address.setAdapter(addressAdapter);
LoadInstance(savedInstanceState);
return view;
}
Esse é meu adapter:
class AddressAdapter extends BaseAdapter {
private Context context;
private List addresses;
private View.OnClickListener addOnClick, delOnClick;
List edt_address_list;
AddressAdapter(Context context, List addresses) {
this.context = context;
this.addresses = addresses;
edt_address_list = new ArrayList<>();
}
public void setAddOnClick(View.OnClickListener addOnClick) {
this.addOnClick = addOnClick;
}
public void setDelOnClick(View.OnClickListener delOnClick) {
this.delOnClick = delOnClick;
}
@Override
public int getCount() {
return addresses.size();
}
@Override
public Object getItem(int position) {
return addresses.get(position);
}
@Override
public long getItemId(int position) {
return addresses.get(position).getID();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final AddressHolder holder;
if (convertView == null) {
holder = new AddressHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.frag_reg_address, parent, false);
holder.edt_address = (EditText) convertView.findViewById(R.id.regaddr_edt_address);
convertView.setTag(holder);
} else holder = (AddressHolder) convertView.getTag();
return convertView;
}
}
Esse é meu ViewHolder
class AddressHolder {
EditText edt_address;
int ref;
}