EditText imeOptions'ı eyleme getirmeNext'in etkisi yoktur


95

Oldukça karmaşık (gerçekten değil) bir xml düzen dosyam var. Görünümlerden biri, v1iki alt öğesi olan bir LinearLayout ( ) 'dur: bir EditText ( v2) ve başka bir LinearLayout ( v3). Alt LinearLayout ise bir EditText ( v4) ve bir ImageView ( v5) içerir.

EditText v2 için imeOptions'ım var

android:imeOptions="actionNext"

Ancak uygulamayı çalıştırdığımda, klavye returnkontrol etmiyor nextve olarak değişmesini istiyorum next. Bu sorunu nasıl çözerim?

Ayrıca, kullanıcı daha sonra tıkladığında, odağın EditText v4'e gitmesini istiyorum. Ben yaparım

Gerçekten bir kod görmesi gerekenler için:

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

Bunun kardeş olmayan görünümler için işe yarayacağından emin değilim, ancak eklemeyi deneyebilirsiniz android:nextFocusDown="@id/edit_text_v4"(ayrıca deneyebilir android:nextFocusForwardveya diğer nextFocus niteliklerinden bazılarını deneyebilirsiniz ).
Karakuri

@Karakuri işe yaramadı. Bir sonraki düğmenin hiç görünmediğine dikkat edin. Düğme hala geri dönüş düğmesidir.
Katedral Pillon

1
@KatedralPillon Çözmeyi başardınız mı? Cevabınız evet ise çözümünüzü buraya gönderebilir misiniz? Ben de aynı sorunla karşı karşıyayım.
h4ck3d

Yanıtlar:


192

Sadece android:maxLines="1" & android:inputType="text"EditText'inize ekleyin . Çalışacak!! :)


3
EditText'inizin yüksekliğini wrap_content olarak ayarlamayı deneyin.
Surendra Kumar

4
İle de çalışmıyorum wrap_content . Ayar bir inputTypebenim durumumda sorunu çözdü.
manfcas

3
kullanımdan kaldırıldığı gibi android:maxLines="1"yerine kullanınandroid:singleLine="true"
blueware

9
Bununla birlikte, `android: singleLine =" true "'kullanımdan kaldırılmıştır, ancak bazıları işe yaramazken hile nasıl yapar.maxLine="1"
Paresh P.

2
İmeopsiyonların çalışması için inputType = "text" ayarlamanız gerekir.
Duran Jayson

49

singleLinekullanımdan kaldırıldı. Bir giriş türü eklemek (örneğin android:inputType="text":) benim için de çalıştı.

Kullanımdan kaldırıldığı android:maxLines="1"gibi kullanınsingleLine


1
Bu doğru cevap!! imeOptions ve maxLines InputType olmadan hiçbir etkisi olmayacaktır
Christopher Smit

43

android:singleLinekullanımdan kaldırıldı, birleştirmek daha iyidir android:maxLines="1"ile android:inputType="text". Kod şu olacaktır:

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

21

Burada verilen cevapların hepsi çok yardımcı oldu, ancak yine de klavyemin "Sonraki" ni göstermekte zorlanıyordum.

XML'inizde Android'in android:digitsözniteliğini kullandığınızda , android:imeOptions="actionNext"beklendiği gibi çalışmasını engellediği ortaya çıkıyor .

Cevap aslında kullanımdan kaldırılanı kullanmaktır android:singleLine="True". Bu, IME Seçeneğine saygı duyulmasını zorunlu kılıyor.

Eski, Çalışmayan Kod

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

Çalışma Kodu

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

Kullanımdan kaldırılmış bir özelliği kullanmanın hayranı değilim, ancak şimdilik istenen sonucu elde ediyor gibi görünüyor.


teşekkürler kullanımdan kaldırıldı ama çalışıyor !! gelecekte herhangi bir sorun olacak mı?
Arbaz.

12

tek satır kullanımdan kaldırıldı, bu nedenle aşağıdaki kodu eklersiniz, bence inputType gerekir.

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

11

Sonunda bu sorun için kesin bir çözüm buldum Sadece bu 3 satırı düzenleme metninize ekleyin ve sorunsuz çalışacaktır.

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

Burada ihtiyacınıza göre maxLines ekleyebilirsiniz . Do not kullanmak SingleLine o artık önerilmemektedir olarak. İyi şanslar!


8
android:inputType="text"

İmeOptions'ların çalışması için bir inputType belirtmelisiniz.


ya son öğe formdaki şifre ise?
silentsudo

6

Bu üç satır yeterli.

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

5

Buradaki anahtar, giriş türünü ve imeOptions niteliklerini ayarlamaktır

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

5

Sadece bu benim için çalıştı.

Değiştir:

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

Bu konuda:

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

inputType = "text" benim için yaptı.
Hackmodford 14-19

5

aşağıdaki kod zorunludur

android:inputType="text"

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

actionUnspecifiedtam olarak ne yapar .
Shubham Naik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.