2013-03-26 40 views
-1

我有一个对话框,要求用户输入登录凭证。我想将该密码与之前存储用于验证的数据库值进行比较。 M不能这样做。 任何人都可以帮忙。如何获取edittext值与对话框中的数据库值进行比较

public void onClick(View v) { 
    // TODO Auto-generated method stu 
    Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show(); 
    String existPin=exist_pin.getText().toString(); 
    String confirmPin=new String(); 
    prefEditor.putString("ExistPin", existPin); 
    prefEditor.commit(); 
    WayDataBase way=new WayDataBase(LoginActivity.this); 
    String storedPin=way.getPin(confirmPin); 
    Toast.makeText(context, "Data from database", Toast.LENGTH_SHORT).show(); 
    if(existPin.equals(storedPin)) 
    { 
     d2.dismiss(); 
     Intent i=new Intent(getApplicationContext(),ApplicantPage1.class); 
     startActivity(i); 
    } 
    else 
    { 
     Toast.makeText(context, "Invalid credentials", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

您是否收到任何错误? – 2013-03-26 06:14:24

+0

是否可以从数据库中获取StoredPin? if-else中的哪个部分总是被执行?你有什么错误吗? – SKK 2013-03-26 06:18:26

+0

什么是'String confirmPin = new String();'? – RobinHood 2013-03-26 06:31:08

回答

0

更好的数据库内比较,简单地传递getPin功能内输入pin参数检查并返回布尔而不是字符串类似如下:

public boolean isValidPin(String pin) {// within database. 

     boolean type = false; 

     Cursor c = myDataBase.rawQuery(
       "select * from table where user_pin='" + pin+ "'", null); 
     if (c.getCount() > 0) { 
      c.moveToFirst(); 
      type = true; 
     } 

     c.close(); 

     return type; 

    } 

从箱取销和传递的功能,后来放条件并检查布尔值。

String pin=exist_pin.getText().toString(); 
boolean flag=isValidPin(String pin); 


if(flag) 
    { 
     d2.dismiss(); 
     Intent i=new Intent(getApplicationContext(),ApplicantPage1.class); 
     startActivity(i); 
    } 
    else 
    { 
     Toast.makeText(context, "Invalid credentials", Toast.LENGTH_SHORT).show(); 
    } 
+0

myDataBase.rawQuery'我收到的错误在这条线和在'布尔标志= isValidPin(字符串销);”这条线太 – shivani 2013-03-26 06:54:27

+0

你得到什么错误? – RobinHood 2013-03-26 06:58:49

+0

'方法rawQuery(String,null)未定义为类型String# – shivani 2013-03-26 06:59:33

相关问题