【发布时间】:2015-07-19 22:15:00
【问题描述】:
我的第一个屏幕上有一个按钮(启动屏幕之类的东西),当我点击它时,它会将我带到一个空白活动,我需要空白活动作为我在用户输入 pin 后自己设置的 pin然后按下一个按钮(确定),然后因为 pin 是正确的,它把我带到另一个活动。
我已经尝试了大约 15 种方法,但都没有奏效?有没有人知道怎么做?
【问题讨论】:
我的第一个屏幕上有一个按钮(启动屏幕之类的东西),当我点击它时,它会将我带到一个空白活动,我需要空白活动作为我在用户输入 pin 后自己设置的 pin然后按下一个按钮(确定),然后因为 pin 是正确的,它把我带到另一个活动。
我已经尝试了大约 15 种方法,但都没有奏效?有没有人知道怎么做?
【问题讨论】:
在输入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
}
}});
【讨论】: