1. 程式人生 > >EditText+CheckBox使輸入框的內容明文/密文顯示

EditText+CheckBox使輸入框的內容明文/密文顯示

Function:當CheckBox被選中時,輸入框的內容明文顯示;當CheckBox沒被選中時,輸入框的內容密文顯示。

Achieve in xml:

<EditText
        android:id="@+id/et"
        android:inputType="textPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <CheckBox
        android:id="@+id/cb"
android:layout_below="@+id/et" android:text="顯示密碼" android:layout_width="wrap_content" android:layout_height="wrap_content" />

Achieve in Java:

public class MainActivity extends AppCompatActivity {
    private EditText et;
    private CheckBox cb;

    @Override
    protected
void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et = (EditText) findViewById(R.id.et); cb = (CheckBox) findViewById(R.id.cb); //et.setCursorVisible(false); 進入頁面時和輸入時都不顯示游標 cb.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { //et.setCursorVisible(false); 進入頁面和第一次輸入顯示游標,之後的輸入和改換顯示方式之後不顯示 if (isChecked) { //明文顯示 et.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } else { //密文顯示 et.setTransformationMethod(PasswordTransformationMethod.getInstance()); } //讓輸入的等待游標處於最後一個字元的後面而不是第一個字元的前面 et.setSelection(et.getText().length()); } }); } }