Gunaseelan
Gunaseelan

Reputation: 15535

RecyclerView with dynamic Edittext

I have created my RcyclerView and its adapter like following.

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);

final ArrayList<String> list = new ArrayList<>();
final RecyclerViewAdapter adapter = new RecyclerViewAdapter(list);
recyclerView.setAdapter(adapter);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int count = list.size();
        list.add(count + " * 10 = " + (count * 10));
        adapter.notifyDataSetChanged();
    }
});

And my adapter's ViewHolder is

class ViewHolder extends RecyclerView.ViewHolder {
    EditText item;

    ViewHolder(View itemView) {
        super(itemView);
        item = (EditText) itemView.findViewById(R.id.item);
        item.requestFocus(); //I want my last row's EditText get focused automatically.
    }
}

So I want my last EditText get focused automatically. But when I add new one last edittext get focused, while add new one again then first one get focused, then last one, then first one.. etc... Please refer the gif.

enter image description here

Here it shouldn't go to the first edittext.

I don't know how to stable this issue.

Upvotes: 2

Views: 2393

Answers (1)

Gunaseelan
Gunaseelan

Reputation: 15535

By using following method I have achieved the target. Thanks for all who tried to help me.

@Override
public void onViewAttachedToWindow(ViewHolder holder) {
    super.onViewAttachedToWindow(holder);
    if (holder.item != null && holder.item.getText().length() == 0) {
        holder.item.requestFocus();
    }
}

Upvotes: 3

Related Questions