This question already has an answer here:
Hi all I am using alert dialog with edit text.So I want to set input type as password to that edit text programatically.I have searched a lot in google and find out these two methods:
final EditText input = new EditText(getActivity());
input.setTransformationMethod(PasswordTransformationMethod.getInstance());
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
But it is not working for me,It showing the text.But i want dotted text.what is the problem I dont know.So please suggest me to do taht. Thanks to all in advance. this is the code of dialog with edit text:
public void showDialog(){
/* Alert Dialog Code Start*/
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
// alert.setTitle("JPOP"); //Set Alert dialog title here
alert.setMessage(" Please enter password"); //Message here
Log.e("dialog in password ","passworddddddddddddddddd");
// Set an EditText view to get user input
final EditText input = new EditText(getActivity());
// input.setInputType(InputType.TYPE_CLASS_TEXT);
// input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
// input.setTransformationMethod(PasswordTransformationMethod.getInstance());
// final EditText input = new EditText(getActivity());
input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
input.setTransformationMethod(new PasswordTransformationMethod());
input.setHint("Password");
input.setSingleLine();
input.setTextSize(14);
alert.setView(input);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
strPassword = input.getEditableText().toString().trim();
if(strPassword.length()!=0){
String prestatus =DataUrls.preferences.getString("Password", "");
if(prestatus.equals(strPassword)){
if(price_reports_check){
price_reports_check=false;
ReportsFragment reportfragment = new ReportsFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.details, reportfragment);
fragmentTransaction.commit();
}else{
PriceListFragment pricelistfragment = new PriceListFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.details, pricelistfragment);
fragmentTransaction.commit();
}
}else
{
showDialog();
Toast.makeText(getActivity(), "The password you entered is wrong", Toast.LENGTH_SHORT).show();
}
}
else
{
showDialog();
Toast.makeText(getActivity(), "Please Enter Password", Toast.LENGTH_SHORT).show();
}
} // End of onClick(DialogInterface dialog, int whichButton)
}); //End of ok....
alert.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
dialog.cancel();
}
}); //End of alert.setNegativeButton
AlertDialog alertDialog = alert.create();
TextView title = new TextView(getActivity());
// You Can Customise your Title here
title.setText("JPOP");
// title.setBackgroundColor(Color.DKGRAY);
title.setPadding(10, 10, 10, 10);
title.setGravity(Gravity.CENTER);
// title.setTextColor(Color.WHITE);
title.setTextSize(20);
alert.setCustomTitle(title);
alert.setCancelable(false);
alert.show();
}
So please help me what I did wrong.Thanks @All
only try this
input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Remove this and try
InputType.TYPE_CLASS_TEXT
You need to call:
As described here.
Also, as comments mentions in provided question:
you need to call setTransformationMethod instead of setInputType. Calling setInputType after setTransformationMethod causes the EditText to not be in password mode again.
So, it should look like the following per my understanding:
You are getting this problem because you are using
alert.setCustomTitle(title);
after
Which making it again to normal type
either change :
alert.setCustomTitle(title);
toalert.setTitle("your title here");
or if you want to use
customeTitle
Than use following code
after