2010-06-10 6 views
23

AlertDialog를 로그인 또는 핀 코드 또는 암호 대화 상자로 사용하고 싶습니다. 여기 내 코드입니다 -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(); 

- 별표

을가 별표로 표시하지만 내 핀 코드 값을 얻을 수 없습니다. 내 코드는 내가 값을 입력, 만, null 얻을

<?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" /> 

dialog_login.xml
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(); }} 

이하!

어떻게 해결할 수 있습니까?

이 문에서 디버깅이 중지됩니다. 위의 mUserText null 값이 팝업에 표시되는 것을 나타냅니다.

문자열 strPinCode = mUserText.getText(). toString();

Android 1.6을 사용합니다. 그것은 버전에 의존합니까? :?

답변

4

EditText에는 android:password="true"이 있어야합니다.

확인 this 링크.

+0

이 Macarse을 주셔서 감사합니다. 나는이 android : password를 안다. 하지만 AlertDialog를 로그인 폼으로 사용하고 싶습니다. 그런 식으로 사용하는 것이 좋습니까? 내 애플리케이션에 기본 탭 레이아웃이 있고 관련 활동이 나타납니다. 내장 된 연락처처럼 보입니다. 사용자가 내 애플리케이션을 사용하기 시작할 때마다이 로그인 레이아웃을 표시하고 싶습니다. 난 그냥 onResume() 이벤트를 알고 있지만이 이벤트를 사용하는 경우 가끔 로그인 레이아웃이 두 ​​번 이상 나타납니다. 그래서 사용자가 응용 프로그램을 사용할 때마다 나타나는 코드를 작성하는 방법. – soclose

+0

그것은 효과가 있었다. 이 링크를 기반으로 LayoutInflater를 사용합니다. http://www.coderanch.com/t/434894/Android/Mobile/values ​​ – soclose

+0

별표로 표시되어 있지만 핀 코드 값을 가져올 수 없습니다. 내 게시물에 내 업데이트 된 코드를 게시했습니다. 제 실종 또는 잘못된 점을 확인하십시오. – soclose

6

이 문제는 더 이상 사용되지 않는 android:password을 사용하지 않고 해결할 수 있습니다. 내 대답 here을 참조하십시오.

-1

은 교체 :

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

으로 :

EditText rate = (EditText)wind.findViewById((R.id.rate)); 
+2

무엇, ....../??????? / –