如何从onAuthenticationSucceeded方法调用另一个类的方法?

时间:2017-04-14 11:27:34

标签: android fingerprint

我在我的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

3 个答案:

答案 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();