SRKS
SRKS

Reputation: 218

Listview - has focus always return false

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

Answers (2)

Try doing this,

static boolean b= true;
if(b == true){
   et.requestFocus();
   b= false;
}

Upvotes: 1

Shriyansh Gautam
Shriyansh Gautam

Reputation: 1082

Try adding

android:descendantFocusability="afterDescendants"

to your listView

Upvotes: 1

Related Questions