Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Focus issue in ListView EditText display in Dialog in Android

I have to display ListView contains EditText on Dialog, where a user can type the text in EditText and its content should not be lost.

For example, I have 10 EditText in listview, if the user types "11" in first EditText , "22" in second EditText , "33" in third EditText and scroll down the listview at tenth EditText after that user scroll it up again at first EditText at that time the value in first EditText should be "11", for second EditText "22" and so on, I have achieved this by setting EditText when text gets changed in EditText.

I use NiftyDialog as dialog (Link). The issue is that the EditText got focus randomly (it sometimes worked and sometimes not).

I have set

android:descendantFocusability="afterDescendants"

in ListView and set

android:windowSoftInputMode="adjustPan"

in Manifest File, but its not working properly.

What can be the issue here?

like image 365
Jayesh Avatar asked Dec 28 '15 06:12

Jayesh


1 Answers

I had this issue a while ago with EditText focus and realized that just setting the attributes on existing views wont work. In my case it was to avoid the keypad from poping up, but I believe, the same solution will work in your case too.

Add a dummy layout with android:focusable="true" and android:focusableInTouchMode="true" on top above all other views. This way the focus would go to this layout (which is at the top) and your random focus problem with the EditText in the ListView will get resolved.

    <!-- Stop auto focussing the EditText -->
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="@android:color/transparent"
        android:focusable="true"
        android:focusableInTouchMode="true">
    </LinearLayout>
like image 94
AndroidMechanic - Viral Patel Avatar answered Nov 17 '22 15:11

AndroidMechanic - Viral Patel