我在我的Android应用程序中使用了指纹登录。
如果验证成功,它将调用onAuthenticationSucceeded方法。
成功验证指纹后,我想验证onAuthenticationSucceeded中的用户名。
但我无法在onAuthenticationSucceeded方法中调用另一个类的方法(用于验证用户名)。
该应用似乎总是停止。
我怎么能实现它? 请帮我。 谢谢
这是我的FingerprintHandler.java
public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result{
login log=new login(); log.unameCheck();
}
这是login.java中的方法
public void unameCheck(){
String uname=edit_username.getText().toString();
String storedPassword=myDb.getSingleEntry(uname);
if(storedPassword!=0){ Toast.makeText(login.this,"Login Successfull",Toast.LENGTH_LONG).show();
Intent intent =new Intent("michel.maan.login1"); startActivity(intent);. }
else {
Toast.makeText(login.this,"Login failed",Toast.LENGTH_LONG).show(); } }
这是我的Databasehelper.java
public String getSingleEntry(String userName){
SQLiteDatabase db=this.getWritableDatabase();
Cursor cursor=db.query("USER_TABLE".null,"NAME=?",new String[]{username},null,null,null); if(cursor.getCount()<1){
cursor.close();
return"NOT EXIST" ; } cursor.moveToFirst();
String password=cursor.getString(cursor.getColumnIndex("PASSWORD")); cursor.close();
return password; }
在android监视器中显示的异常是
Java.lang.NullPointerExceptio:Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
This is the code I referred for my project from android authority
答案 0 :(得分:1)
最简单的方法是onAuthenticatinSucceed方法的startActivity并传递额外的意图
Intent intent=new Intent(this,SecondActivity.class);
intent.putExtra("authentication","done");
startActivity(intent);
现在在onCreate of secondActiviy得到这个额外的并且像这样检查
if(getIntent.getExtra("authentication").equals("done"))
callVerifyUsername();
如果您愿意,也可以将指纹传递中的用户名作为额外意图传递给他人。 如果你想回到上一个屏幕,如果未验证userName,你可以直接调用
finish();
答案 1 :(得分:0)
您必须创建类的实例并调用方法:
void onAuthenticationSucceeded ( ... ) { //in your onAuthenticationSucceeded method
...
yourAnotherClass newInstance = new yourAnotherClass(...); //Make Instance of your verfying class
newInstance.verfyUserName (...); //call the Verifying Method
}
答案 2 :(得分:0)
在您的身份验证类中创建其他类的对象,并使用该对象调用该方法,如下所示
假设你的方法名是,VerifyUserName(),它在SecondActivity中,然后在你的firstActivity中验证成功,如下所示
SecondActivity sa = new SecondActivity();
sa.VerifyUSerName();