【问题标题】:I need to create a Android activity that's protected with a pin code [closed]我需要创建一个受密码保护的 Android 活动 [关闭]
【发布时间】:2015-07-19 22:15:00
【问题描述】:

我的第一个屏幕上有一个按钮(启动屏幕之类的东西),当我点击它时,它会将我带到一个空白活动,我需要空白活动作为我在用户输入 pin 后自己设置的 pin然后按下一个按钮(确定),然后因为 pin 是正确的,它把我带到另一个活动。

我已经尝试了大约 15 种方法,但都没有奏效?有没有人知道怎么做?

【问题讨论】:

    标签: java android sdk


    【解决方案1】:

    在输入pin后按下确定时,您需要验证输入的pin是否与保存的pin相同,如果是,您可以打开您想要的活动。 你需要有一个edittext来收集pin。

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

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

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

    打开活动的代码:

    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", "");
    

    将此与我们必须验证输入的密码与保存的密码的代码相结合,新代码将是:

    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
                        }
    }});
    

    【讨论】:

    • 非常感谢!这是一个梦想,你救了我的命!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2019-01-01
    • 2010-09-22
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多