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

  • ASUS

    ASUS

    22 EKİM 2005
  • LardTardProductions's channel

    LardTardProd

    10 NİSAN 2009
  • rekjavicxxx

    rekjavicxxx

    28 EKİM 2007