public class MainActivity extends Activity {
private String md5(String in) {
MessageDigest digest;
try {
digest = MessageDigest.getInstance("MD5");
digest.reset();
digest.update(in.getBytes());
byte[] a = digest.digest();
int len = a.length;
StringBuilder sb = new StringBuilder(len << 1);
for (int i = 0; i < len; i++) {
sb.append(Character.forDigit((a[i] & 0xf0) >> 4, 16));
sb.append(Character.forDigit(a[i] & 0x0f, 16));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText text = (EditText) findViewById(R.id.editText1);
EditText text1 = (EditText) findViewById(R.id.editText2);
String userid = text.getText().toString();
String pass = text1.getText().toString();
Toast.makeText(
MainActivity.this,
"Entered " + userid + " and password entered is "
+ pass, Toast.LENGTH_LONG).show();
pass = md5(pass + "@string/salt");
Toast.makeText(
MainActivity.this,
"Password after adding a salt and md5 hashing is now equal to "
+ pass, Toast.LENGTH_LONG).show();
/* This Line */DBAdapter db = new DBAdapter(this); // This Line.
db.open();
Cursor c = db.getPasswordForUserName(userid);
if (c.moveToFirst()) {
if (c.getString(1) == pass) {
Toast.makeText(MainActivity.this,
"Authentication Succeded", Toast.LENGTH_SHORT)
.show();
// proceed
} else {
Toast.makeText(MainActivity.this, "@string/AuthFail",
Toast.LENGTH_SHORT).show();
// AuthFailure
}
} else {
Toast.makeText(MainActivity.this, "@string/UserNotFound",
Toast.LENGTH_SHORT).show();
// where to from here
}
}
});
}
}
저는 Android 프로그래밍에있어 매우 새로운 기능입니다. 그래서 많은 장소에서 코드 스 니펫을 가져 와서 결합했습니다.Error : xyz 클래스의 생성자가 정의되지 않았습니다.
기본적으로 로컬 값인 UserName
과 Password
+ salt(with md5 hash)
에 대해 로컬 SQLite DB를 쿼리하기 만하면됩니다.
그래서 나는 데이터베이스를 다루는 꽤 기본적인 방법을 가진 데이터베이스 도우미 클래스 (DBAdapter
)를 만들기 위해 몇 가지 코드를 복사했습니다.
이제 문제는 MainActivity.java
파일에 있습니다. "this line"코드에으로 표시된 줄은 오류를 나타냅니다. 생성자 DBAdapter (새 View.OnClickListener() {})는 정의되지 않습니다. 나는 이것이 무엇을 의미하는지 모른다. 작동 시키려면 어떻게해야합니까? 난 단지 해보십시오 MainActivity.this을 추측 할 수
나는 자바를 배우기 위해 안드로이드를 배우려고하는 사람에게 조언 해줄 것이다. 특히 묻는 DBAdapter를 사용하여 View.OnClickListener를 인수로 허용합니다. –