SORU
16 ŞUBAT 2011, ÇARŞAMBA


Yapılan Softİnput Eylem çok satırlı Etiket EditText ile 2.3

Orada Satırı Çok EditText mevcut ve IME kullanmak Eylem Etiket "Android 2.3? Yapmış bir yoldur

Bu bir sorun değil Android 2.2, düğmesini gösterir IME Eylem Etiket "tıklandığında" (android:imeActionLabel="actionDone"), ve işine Yumuşak bir Giriş Yapıldı. girin

Multi-line EditText bir yapılandırırken, Android 2.3 "" Yumuşak Giriş klavye için eylem Yaptı. gösterme yeteneği kaldırır

KeyListener, ancak enter tuşu bir anahtar girmek gibi bir kullanarak Yumuşak Giriş düğmesine basın davranışlarını değiştirmek başardım.


Burada EditText Bildirgesi

<EditText
        android:id="@ id/Comment"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="0dp"
        android:lines="3"
        android:maxLines="3"
        android:minLines="3"
        android:maxLength="60"
        android:scrollHorizontally="false"
        android:hint="hint"
        android:gravity="top|left"
        android:textColor="#888"
        android:textSize="14dp"
        />
<!-- android:inputType="text" will kill the multiline on 2.3! -->
<!-- android:imeOptions="actionDone" switches to a "t9" like soft input -->

Ben yükleme faaliyeti içerik görünümü ayarladıktan sonra inputType değeri kontrol ederken, bunu gösterir:

inputType = 0x20001

Olan:

  • sınıf = TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_NORMAL
  • flags = InputType.TYPE_TEXT_FLAG_MULTI_LINE

CEVAP
24 EYLÜL 2012, PAZARTESİ


Ohhorob cevabı temelde doğru olduğunu, ama onun kod gerçekten çok gereksiz! Temelde daha basit olan bu sürüm (tembel okuyucular için tam kod) eşdeğerdir:

package com.example.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.widget.EditText;

// An EditText that lets you use actions ("Done", "Go", etc.) on multi-line edits.
public class ActionEditText extends EditText
{
    public ActionEditText(Context context)
    {
        super(context);
    }

    public ActionEditText(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }

    public ActionEditText(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
    }

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs)
    {
        InputConnection conn = super.onCreateInputConnection(outAttrs);
        outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION;
        return conn;
    }
}

textShortMessage gibi inputType bazı seçenekler bu değil unutmayın! inputType="text" ile başlamanızı tavsiye ederim. Senin XML kullanabilirsin.

<com.example.views.ActionEditText
    android:id=...
    android:layout_stuff=...
    android:imeOptions="actionDone"
    android:inputType="textAutoCorrect|textCapSentences|textMultiLine"
    android:maxLines="3" />

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • The Computer Chronicles

    The Computer

    7 Kasım 2012
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009