我需要创建一个受 PIN 码保护的 Android activity

I need to create a Android activity that's protected with a pin code

我的第一个屏幕上有一个按钮(启动画面之类的东西),当我点击它时,它会把我带到一个空白 activity,我需要空白 activity 作为 pin一旦用户输入 pin 并按下按钮(确定),我就会自己设置,然后因为 pin 是正确的,所以我会转到另一个 activity.

我已经尝试了大约 15 种方法,none 是否有效?你们有人知道怎么做吗?

当输入密码后按确定时,您需要验证输入的密码是否与保存的密码相同,如果是,您可以打开您想要的activity。 您需要有一个 edittext 才能收集图钉。

<EditText
 android:id="@+id/passwordedittext"
 android:layout_width="200dp"
 android:layout_height="wrap_content"
 android:inputType="textPassword">
 <requestFocus />

需要一个确定按钮,以便在单击时验证 pin 是否正确然后打开 activity 否则显示错误消息。

<Button
 android:id="@+id/okbutton"
 android:layout_width="50dp"
 android:layout_height="50dp"
 android:layout_marginTop="50dp"
 android:clickable="true" 
 android:layout_gravity="center_horizontal" 
 android:layout_marginRight="20dp"/>

打开您的 activity 的代码:

Button okButton = (Button) findViewById(R.id.okbutton);
    okButton.setOnClickListener(new View.OnClickListener() {        
        public void onClick(View v){
        EditText passwordEditText = (EditText) findViewById(R.id.pinedittext);
                    if(passwordEditText.getText().toString().equals("theuserpin")){
                        startActivity(new Intent("com.my.activtyToBeOpened"));
                    }
                    else{
                       //add some code to display error message
                    }
}});

现在,如果用户需要在第一次设置 PIN 码,稍后使用相同的 PIN 码来验证登录,那么您需要获取 PIN 码并保存以备日后用户输入时使用。您需要有一个编辑文本和一个按钮,单击按钮时您需要使用首选项保存它。

SharedPreferences.Editor editor = getSharedPreferences("my_pin_pref", MODE_PRIVATE).edit();
 editor.putString("pin", edittextping.getText().toString());
 editor.commit();

您可以使用以下方式检索此保存的值:

SharedPreferences prefs = getSharedPreferences("my_pin_pref", MODE_PRIVATE); 
String mysavedpin = prefs.getString("pin", "");

将此与我们必须用保存的 pin 验证输入的 pin 的代码结合起来,新代码将是:

SharedPreferences prefs = getSharedPreferences("my_pin_pref", MODE_PRIVATE); 
String mysavedpin = prefs.getString("pin", "");

Button okButton = (Button) findViewById(R.id.okbutton);
    okButton.setOnClickListener(new View.OnClickListener() {        
        public void onClick(View v){
        EditText passwordEditText = (EditText) findViewById(R.id.pinedittext);
                    if(passwordEditText.getText().toString().equals(mysavedpin)){
                        startActivity(new Intent("com.my.activtyToBeOpened"));
                    }
                    else{
                       //add some code to display error message
                    }
}});