Menyetel imeOptions EditText ke actionNext tidak berpengaruh

94

Saya memiliki file tata letak xml yang cukup kompleks (tidak terlalu). Salah satu tampilan adalah LinearLayout ( v1) dengan dua anak: EditText ( v2) dan LinearLayout ( v3) lainnya. Anak LinearLayout pada gilirannya memiliki EditText ( v4) dan ImageView ( v5).

Untuk EditText v2 saya memiliki imeOptions sebagai

android:imeOptions="actionNext"

Namun saat saya menjalankan aplikasi, keyboard returntidak memeriksa nextdan saya ingin mengubahnya menjadi next. Bagaimana cara memperbaiki masalah ini?

Juga, ketika pengguna mengklik berikutnya, saya ingin fokus ke EditText v4. Saya melakukan saya melakukan ini?

Bagi mereka yang benar-benar perlu melihat beberapa kode:

<LinearLayout
        android:id="@+id/do_txt_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/col6"
        android:orientation="vertical"
        android:visibility="gone" >

        <EditText
            android:id="@+id/gm_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:background="@drawable/coldo_text"
            android:hint="@string/enter_title"
            android:maxLines="1"
            android:imeOptions="actionNext"
            android:padding="5dp"
            android:textColor="pigc7"
            android:textSize="ads2" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/rev_text"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_gravity="center_vertical"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/coldo_text"
                android:hint="@string/enter_msg"
                android:maxLines="2"
                android:padding="5dp"
                android:textColor="pigc7"
                android:textSize="ads2" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_vertical"
                android:background="@drawable/colbtn_r”
                android:clickable="true"
                android:onClick=“clickAct”
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:src="@drawable/abcat/>
        </LinearLayout>
    </LinearLayout>
Katedral Pillon
sumber
Saya tidak yakin ini akan berfungsi untuk tampilan yang bukan bersaudara, tetapi Anda dapat mencoba menambahkan android:nextFocusDown="@id/edit_text_v4"(mungkin juga mencoba android:nextFocusForwardatau beberapa atribut nextFocus lainnya).
Karakuri
@Karakuri itu tidak berhasil. Perhatikan bahwa tombol selanjutnya tidak muncul sama sekali. Tombolnya masih tombol kembali.
Katedral Pillon
1
@KatedralPink Anda berhasil menyelesaikannya? Jika ya, bisakah Anda memposting solusi Anda di sini? Saya menghadapi masalah yang sama.
h4ck3d

Jawaban:

189

Cukup tambahkan android:maxLines="1" & android:inputType="text"ke EditText Anda. Ini akan berhasil !! :)

Surendra Kumar
sumber
3
Coba setel tinggi EditText Anda sebagai wrap_content.
Surendra Kumar
4
Tidak bekerja juga dengan wrap_content . Menetapkan masalah inputTypememecahkan masalah dalam kasus saya.
manfcas
3
gunakan android:maxLines="1"sebagai ganti android:singleLine="true"seperti yang sudah usang
blueware
9
Meskipun, `android: singleLine =" true "` tidak digunakan lagi tetapi beberapa cara melakukan triknya, sementara maxLine="1"tidak berfungsi.
Paresh P.
2
Anda harus menyetel inputType = "text" agar imeoptions berfungsi.
Duran Jayson
49

singleLinesudah ditinggalkan. Menambahkan jenis masukan (mis .:) android:inputType="text"juga berhasil untuk saya.

Gunakan android:maxLines="1"seperti yang singleLinesudah tidak digunakan lagi

pratnala
sumber
1
Ini jawaban yang benar !! imeOptions dan maxLines tidak akan berpengaruh tanpa inputType
Christopher Smit
43

android:singleLinesudah usang, lebih baik untuk digabungkan android:maxLines="1"dengan android:inputType="text". Ini akan menjadi kodenya:

<EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:maxLines="1"
        android:inputType="text"
        />
voghDev
sumber
21

Jawaban yang diberikan di sini semuanya sangat membantu, tetapi saya masih berjuang untuk menampilkan "Berikutnya" keyboard saya.

Ternyata saat Anda menggunakan android:digitsatribut Android dalam XML Anda, hal itu mencegah agar tidak android:imeOptions="actionNext"berfungsi seperti yang diharapkan.

Jawabannya sebenarnya adalah menggunakan yang sudah usang android:singleLine="True". Ini tampaknya memaksa Opsi IME dihormati.

Kode Lama, Tidak Berfungsi

        <android.support.design.widget.TextInputEditText
            android:id="@+id/first_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
            android:ellipsize="end"
            android:hint="@string/first_name"
            android:imeOptions="actionNext"
            android:inputType="textCapWords"
            android:maxLength="35"
            android:maxLines="1" />

Kode Kerja

        <android.support.design.widget.TextInputEditText
            android:id="@+id/first_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
            android:ellipsize="end"
            android:hint="@string/first_name"
            android:imeOptions="actionNext"
            android:inputType="textCapWords"
            android:maxLength="35"
            android:maxLines="1"
            android:singleLine="true" />

Saya bukan penggemar menggunakan atribut deprecated, tapi untuk saat ini sepertinya mendapatkan hasil yang diinginkan.

welshk91
sumber
terima kasih sudah tidak digunakan lagi tetapi berfungsi !! masalah apa saja yang akan terjadi di masa depan?
Arbaz. Pada
11

satu baris tidak digunakan lagi sehingga Anda menambahkan kode di bawah ini, saya pikir inputType harus.

        <EditText 
            android:inputType="text"
            android:maxLines="1"
            android:imeOptions="actionNext" />
Mani
sumber
10

Akhirnya saya mendapat solusi pasti untuk masalah ini Cukup tambahkan 3 baris ini di teks edit Anda dan itu akan berfungsi dengan baik

        android:maxLines="1"
        android:inputType="text"
        android:imeOptions="actionDone"

Di sini Anda dapat menambahkan maxLines sesuai dengan kebutuhan Anda. Jangan gunakan singleLine karena sekarang sudah tidak digunakan lagi. Semoga berhasil!

Ali Nawaz
sumber
8
android:inputType="text"

Anda harus menentukan inputType agar imeOptions berfungsi.

paulb444
sumber
bagaimana jika item terakhir adalah kata sandi?
silentsudo
6

Tiga baris ini sudah cukup.

android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"
Googlian
sumber
5

Kuncinya di sini adalah untuk mengatur tipe input dan atribut imeOptions

<EditText 
   android:inputType="number"
   android:maxLines="1"
   android:imeOptions="actionSearch" />
pavan bangalala
sumber
5

Hanya ini yang berhasil untuk saya.

Ubahlah:

android:maxLines="1"
android:inputType="text"
android:imeOptions="actionNext"

pada itu:

android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"
Zakhar Rodionov
sumber
inputType = "text" melakukannya untuk saya.
Hackmodford
4
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/auth_register_re_password"
    android:hint="Enter Password Again"
    android:imeActionLabel="login"
    android:gravity="center"
    android:imeOptions="actionUnspecified"
    android:inputType="textPassword"
    android:maxLines="1"/>
Sai Gopi Me
sumber
apa yang actionUnspecifieddilakukannya.
Shubham Naik
4

kode di bawah ini adalah gaya

android:inputType="text"
Mehrdad
sumber