0

属性android:inputType="numberSigned"を使用して XML で EditText を定義したため、Java コードで取得しようとすると、次のようになります。

int type = mEditText.getInputType();
switch(type){
case InputType.TYPE_NUMBER_FLAG_SIGNED:
//do when I get EditText defined with 'numberSinged'
//do something
break;
}

しかし、それは私にはうまくいきません。そこで、Android のソース コードを確認してみますTYPE_NUMBER_FLAG_SIGNED=4096。印刷しようとするとprintln(mEditText.getInputType())、 になります4098。そして、変数 equals が見つかりません4098
誰か理由を教えてくれませんか?

私は英語が苦手です、あなたが私を理解できるかもしれません! ありがとう!

4

2 に答える 2

1

inputType には複数のフラグを割り当てることができます。フラグが設定されているかどうかを確認するには、ビットごとの AND ( &) 演算子を使用します。

int type = mEditText.getInputType();
if((type & InputType.TYPE_NUMBER_FLAG_SIGNED) > 0)
{
    // your stuff here
}

switchここではケースの使用は不可能だと思います。

于 2012-11-21T03:59:48.427 に答える
0

TYPE_NUMBER_FLAG_SIGNED定数値:4096(0x00001000)。

ここで詳細情報を入手してください

于 2012-11-21T04:02:10.073 に答える