25

我想使用 AlertDialog 作为登录或密码或密码对话框。这是我的代码 -

    AlertDialog.Builder alert = new AlertDialog.Builder(this);                 
alert.setTitle("Login");  
alert.setMessage("Enter Pin :");                

 // Set an EditText view to get user input   
 final EditText input = new EditText(this); 
 alert.setView(input);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog, int whichButton) {  
        String value = input.getText().toString();
        Log.d( TAG, "Pin Value : " + value);
        return;                  
       }  
     });  

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            return;   
        }
    });
            alert.show();

如何编码所有输入文本将显示为“ *** ” - 星号

我无法获得我的密码值,尽管它显示为星号。我的代码在下面

    private void accessPinCode_2()
{
    LayoutInflater factory = LayoutInflater.from(this);
    final View textEntryView = factory.inflate(R.layout.dialog_login, null);
    AlertDialog.Builder alert = new AlertDialog.Builder(this);                 
    alert.setTitle("Login");  
 alert.setMessage("Enter Pin :");                
 alert.setView(textEntryView);

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog, int whichButton) {  
        //String value = input.getText().toString();
        EditText mUserText;
        mUserText = (EditText) textEntryView.findViewById(R.id.txt_password);
        String strPinCode = mUserText.getText().toString();
        Log.d( TAG, "Pin Value : " + strPinCode);
        return;                  
       }  
     });  

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            return;   
        }
    });
            alert.show();   }}

dialog_login.xml

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/txt_password"
         android:password="true"
         android:layout_height="wrap_content"
         android:layout_width="250px"
         android:layout_centerHorizontal="true"
         android:layout_below="@+id/password_text"
         android:singleLine="true" /> 

我输入了值,但得到空值!

怎么解决?

调试在此语句处停止。当我指向 mUserText 上方时,弹出窗口中显示了空值。

字符串 strPinCode = mUserText.getText().toString();

我使用安卓 1.6。它取决于版本吗?:?:

4

3 回答 3

6

这个问题可以在不使用 deprecated 的情况下解决android:password在这里查看我的答案。

于 2010-10-25T12:41:52.547 回答
4

EditText应该有android:password="true"

检查链接。

于 2010-06-10T03:04:53.767 回答
-1

代替:

EditText rate = (EditText)findViewById((R.id.rate));

和:

EditText rate = (EditText)wind.findViewById((R.id.rate));
于 2011-01-20T09:54:59.367 回答