SORU
8 Ocak 2013, Salı


Android edittext için min ve max değeri tanımlamak için bir yolu var mı?

Bir edittext için min ve max değer tanımlamak istiyorum. Eğer herhangi bir kişi ay bir değer girmeyi deneyin, örneğin bildiğiniz gibi 1-12 arası olmalı. Bu değer sınırlamak istiyorum.

TextWatcher kullanarak yapabilirim ama öğrenmek istiyorum, orada düzen bir dosya ya da vb bunu yapmak için herhangi bir yolu dışında TextWatcher?

Edit: Karakter sayısını sınırlamak istemiyorum. Değerini sınırlamak istiyorum. Eğer ay edittext w harfi sınırı örneğin, 12 girdiğimde bunu kabul eder ama eğer 22 girersem giriyorum ederken kabul çıkmamalı.

Herkese teşekkürler. Saygılar.

CEVAP
8 Ocak 2013, Salı


Önce bu sınıf olun :

package com.test;

import android.text.InputFilter;
import android.text.Spanned;

public class InputFilterMinMax implements InputFilter {

    private int min, max;

    public InputFilterMinMax(int min, int max) {
        this.min = min;
        this.max = max;
    }

    public InputFilterMinMax(String min, String max) {
        this.min = Integer.parseInt(min);
        this.max = Integer.parseInt(max);
    }

    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {   
        try {
            int input = Integer.parseInt(dest.toString()   source.toString());
            if (isInRange(min, max, input))
                return null;
        } catch (NumberFormatException nfe) { }     
        return "";
    }

    private boolean isInRange(int a, int b, int c) {
        return b > a ? c >= a && c <= b : c >= b && c <= a;
    }
}

O zaman etkinliğinizi bu kullanın :

EditText et = (EditText) findViewById(R.id.myEditText);
et.setFilters(new InputFilter[]{ new InputFilterMinMax("1", "12")});

Bu kullanıcı girmek için izin verecektir12 ile 1 arasında değerler sadece.

DÜZENLEME :

android:inputType="number" ile edittext ayarlayın.

Teşekkürler.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AverageBroTV

    AverageBroTV

    20 Mart 2013
  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • SegaAmerica

    SegaAmerica

    5 Mart 2008