Xin chào tất cả Tôi đang sử dụng hộp thoại cảnh báo với văn bản chỉnh sửa. Tôi muốn đặt loại đầu vào làm mật khẩu cho văn bản chỉnh sửa đó. Tôi đã tìm kiếm rất nhiều trong google và tìm ra hai phương pháp:cách đặt loại đầu vào là mật khẩu thành edittext theo chương trình
final EditText input = new EditText(getActivity());
input.setTransformationMethod(PasswordTransformationMethod.getInstance());
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
Nhưng nó không phải đang làm việc cho tôi, nó cho thấy text.But tôi muốn text.what rải rác là vấn đề tôi không know.So xin đề nghị tôi làm taht. Xin cảm ơn tất cả trước. đây là mã của hộp thoại với chỉnh sửa văn bản:
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();
}
Vì vậy, hãy giúp tôi những gì tôi đã làm wrong.Thanks @All
Have You thử http://stackoverflow.com/questions/2586301/set-inputtype-for-an-edittext? – sandrstar
vâng, tôi đã thử nhưng nó không hoạt động đối với tôi – rams
Có chú thích đặc biệt cho Bạn trong liên kết được cung cấp: Chỉ cần thêm vào điều này, bạn cần gọi setTransformationMethod thay vì setInputType. Gọi setInputType sau khi setTransformationMethod làm cho EditText không ở chế độ mật khẩu một lần nữa. – sandrstar