2011-11-11 17 views
0

私は、アクティビティのパスワードを尋ねるEdittextを表示する警告ダイアログを表示しています。すべてうまくいく私はまた、単純なレイアウトファイルを使用してみました。今問題は、数値入力を強制しようとするたびに数値入力を表示しますが、そこに入力されている数値入力を表示することを拒否します。それは通常のテキストでうまく動作します。しかし、入力された最初のcharaterが数字の場合でも、それと同じ問題がありますが、いくつかの非整数の文字を入力してから数字を入力すると、それは大丈夫です。 a5は良いですが、uが5を入力した場合に問題が発生しました。android:inputType = "number" これを通常のアクティビティ(健全性チェックとして)で試してみると、alertDialogではなく正常に動作します。Androidの警告ダイアログの数値入力

ここ関連コード

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/password_view" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_marginLeft="20dip" 
     android:layout_marginRight="20dip" 
     android:text="Password" 
     android:gravity="left" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/password" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_marginLeft="20dip" 
     android:layout_marginRight="20dip" 
     android:scrollHorizontally="true" 
     android:autoText="false" 
     android:capitalize="none" 
     android:gravity="fill_horizontal" 
     android:password="true" 
     android:textAppearance="?android:attr/textAppearanceMedium"/> 

</LinearLayout> 



    public void passwordChecker() { 
     // TODO Auto-generated method stub 
     //final EditText input = new EditText(PrivacyActivity.this); 
     //input.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
     //input.setInputType(InputType.TYPE_CLASS_NUMBER); 
     //input.setInputType(InputType.TY); 
     //input.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
     LayoutInflater factory = LayoutInflater.from(mContext); 
     final View view = factory.inflate(R.layout.password, null); 

     final EditText mPassword=(EditText) view.findViewById(R.id.password); 

     //final EditText test=(EditText) findViewById(R.id.password); 

     final EditText input = new EditText(mContext); 

     if(true){ 
      new AlertDialog.Builder(PrivacyActivity.this).setMessage("Enter the password") 
      .setCancelable(false) 
      .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        //perform deletion from database 
        dialog.cancel(); 

        Log.e("error", "Apple "+ mPassword.getText().toString()); 


       } 
      }).setView(input) 
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        .... 
       } 
      }).create().show(); 
     } 
    } 
+1

android:inputType = "number"あなたのedittext xmlでこれを試してみてください。 – user370305

+0

ちょっと私は私が言ったように入力が表示されない(数値キーボードが表示されている)、そこには何もそこに何もgettextをしていないとして – neelabh

答えて

0

iは問題 問題は上記のどちらかではないがわかった後にだから私の悪い私に対応する年齢を取った

<EditText 
     android:id="@+id/password" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_marginLeft="20dip" 
     android:layout_marginRight="20dip" 
     android:singleLine="true" 
     android:autoText="false" 
     android:capitalize="none" 
     android:gravity="fill_horizontal" 
     android:password="true"   
     android:textAppearance="?android:attr/textAppearanceMedium"/> 
+0

ええ私はアンドロイドについて読む:singleLine =フォーラムはそれを試しましたが、それはどちらにも役立ちません – neelabh

0

...これを試してみてくださいです。なんらかの理由で、私は上記にないコードを追加することに失敗しました。

私は、以下のように私の関数 の1つで警告ダイアログをオーバーライドしました。それはuが同様聴いrは何のキーをチェックできます場合、私は唯一のKEYCODE_DPAD_UPKEYCODE_DPAD_CENTER を聞いていたので、それは誰のために

.setNegativeButton("I don't Agree", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         finish(); 
        } 
       }).setOnKeyListener(new DialogInterface.OnKeyListener() { 
        @Override 
        public boolean onKey(DialogInterface dialog, int keyCode, 
          KeyEvent event) { 
         if (keyCode < KeyEvent.KEYCODE_DPAD_UP || keyCode > KeyEvent.KEYCODE_DPAD_CENTER) { 
          return true; 
         } 
         return false; 
        } 
       }).create().show(); 

ので、数値のキーボード入力をめちゃくちゃにされました。

関連する問題