Android 安卓应用锁
我正在尝试为我的应用程序应用锁定屏幕 我认为这个过程是,如果密码不正确,请转到A页,如果密码正确,请转到B页 这是我写的Android 安卓应用锁,android,lockscreen,Android,Lockscreen,我正在尝试为我的应用程序应用锁定屏幕 我认为这个过程是,如果密码不正确,请转到A页,如果密码正确,请转到B页 这是我写的 int PIN = R.id.Txt_password; int pass = 4444; if (PIN == pass) { //Selecting the button which is to be pressed Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit); //Cr
int PIN = R.id.Txt_password;
int pass = 4444;
if (PIN == pass) {
//Selecting the button which is to be pressed
Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit);
//Creates a listener for the button to react when it is pressed
Btn_Submit.setOnClickListener(new View.OnClickListener() {
//Gives the button instructions when it is pressed
@Override
public void onClick(View view) {
Intent startIntent = new Intent(getApplicationContext(),
Control_Screen.class);
startActivity(startIntent);
}
});
} else {
//Selecting the button which is to be pressed
Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit);
//Creates a listener for the button to react when it is pressed
Btn_Submit.setOnClickListener(new View.OnClickListener() {
//Gives the button instructions when it is pressed
@Override
public void onClick(View view) {
Intent startIntent = new Intent(getApplicationContext(),
Password.class);
startActivity(startIntent);
}
});
}
这已经失败了
这是Txt_密码的代码
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberPassword"
android:ems="10"
android:id="@+id/Txt_password"
android:layout_below="@+id/Lbl_EnterPassword"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="4444" />
我认为密码是4444,这是硬编码的,但我有一种感觉,这不是事实,有问题
我该怎么做才能把事情做好
也许有一种方法可以将用户在密码字段中输入的文本放入字符串中?也许您是有意这样做的
EditText txtPassword = (EditText) findViewById(R.id.Txt_password);
int PIN = Integer.parseInt(txtPassword.getText().toString());
if (PIN == 4444) { }
R.id.Txt\u密码
永远不会等于4444
您没有获取您的编辑文本
的文本。您可以通过以下操作获得:
EditText passwordText = (EditText) findViewById(R.id.Txt_password);
int PASS = Integer.parseInt(passwordText.getText().toString());
现在进行比较
int pass = 4444;
if(pass == PASS) {
...
...
}
但是,您需要在按钮的onClickListener
中执行此操作。请参见下面的参考代码:
Button Btn_Submit = (Button) findViewById(R.id.Btn_Submit);
//Creates a listener for the button to react when it is pressed
Btn_Submit.setOnClickListener(new View.OnClickListener() {
//Gives the button instructions when it is pressed
@Override
public void onClick(View view) {
EditText passwordText = (EditText) findViewById(R.id.Txt_password);
int pass = Integer.parseInt(passwordText.getText().toString());
if(pass == 4444) {
Intent startIntent = new Intent(getApplicationContext(), Control_Screen.class);
startActivity(startIntent);
}
else {
Intent startIntent = new Intent(getApplicationContext(), Password.class);
startActivity(startIntent);
});
您需要从EditText字段获取文本并将其更改为整数值,如下所示:
EditText passText = (EditText) findViewById(R.id.Txt_password);
int PIN = Integer.valueOf(passText.getText().toString());
if (PIN == 4444) {
...
}
我想你最好换个方向。不要更改整个按钮侦听器,也不要在方法调用中创建匿名对象。将绑定与实际业务逻辑分离如何?考虑这一点:
public class YourFragment extends Fragment implements View.OnClickListener {
private Button Btn_Submit;
private EditText Txt_password;
private final PIN = 4444;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// inflate layout of fragment or set content if this is an activity
(...)
Btn_Submit = (Button) findViewById(R.id.Btn_Submit);
Btn_Submit.setOnClickListener(this);
Txt_password = (EditText) findViewById(R.id.Txt_password);
}
@Override
public void onClick(View v) {
// if you have multiple elements with click listeners in this fragment/activity, separate calls here. I'm assuming we get only the submit button here.
Integer input_pin = Integer.parseInt(Txt_password.getText());
if (PIN == input_pin) {
Intent startIntent = new Intent(getApplicationContext(), Control_Screen.class);
startActivity(startIntent);
}
// if pin wrong, reset text field and optionally show the user a notification
Txt_password.setText("");
}
}
如果您想让它更干净,请将onClick中的整个代码放入名为
onSubmitPin()
的方法中,并在按下submit按钮时从onClick调用它。您是否意识到您尝试实现的goes没有提供任何安全好处?除了不起作用之外…谢谢。目前我只是在学习如何处理事情。安全性是项目后期的一项工作。再次感谢你的建议。我已经编辑了我的答案。请看一看。无论密码正确与否,此解决方案都会将我带到控制页。我认为这可能是我的if声明,对吗?所有其他解决方案都会将我带到密码不正确的页面。我也不是把这些答案记为否决票的人。这完美地解决了我的问题。谢谢你的帮助。非常感谢。