Reputation: 218
I have an edit text in the list view. Listview is created using Base Adapter and used Holders to load the edit text.
When I cal holder.edtText.hasFocus(), it always return false. Anything that I am missing in the ListView properties?
public View getView(final int position, View convertView, final
ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.screen, parent, false);
holder = new Adapter.ViewHolder(convertView);
convertView.setTag(holder);
}
else
{
holder = (Adapter.ViewHolder) convertView.getTag();
}
holder.edt.setCursorVisible(holder.edt.hasFocus());
holder.edt.setEnabled(true);
holder.edt.setTag(R.string.view, “some object”);
if (position == 10)
{
holder.edt.requestFocus();
}
holder.edt.setFilters(new Filter());
holder.edt.addTextChangedListener(new Watcher());
holder.edt.setText(“text”);
holder.edt.setSelection(text.length);
holder.edt.setSelectAllOnFocus(true);
return convertView;
}
public class ViewHolder extends RecyclerView.ViewHolder
{
public EditText edit;
public ViewHolder(View itemView)
{
super(itemView);
edt = (EditText) itemView.findViewById(R.id.edt);
}
}
Upvotes: 1
Views: 436
Reputation: 1119
Try doing this,
static boolean b= true;
if(b == true){
et.requestFocus();
b= false;
}
Upvotes: 1
Reputation: 1082
Try adding
android:descendantFocusability="afterDescendants"
to your listView
Upvotes: 1