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>

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 !! :)


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


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"
        />

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.


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" />

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!


8
android:inputType="text"

Anda harus menentukan inputType agar imeOptions berfungsi.


bagaimana jika item terakhir adalah kata sandi?
silentsudo

6

Tiga baris ini sudah cukup.

android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"

5

Kuncinya di sini adalah untuk mengatur tipe input dan atribut imeOptions

<EditText 
   android:inputType="number"
   android:maxLines="1"
   android:imeOptions="actionSearch" />

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"

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"/>

apa yang actionUnspecifieddilakukannya.
Shubham Naik

4

kode di bawah ini adalah gaya

android:inputType="text"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.