2013-07-16 2 views
1

내 활동에는 editText의 (사용자 이름, 이름, 성 및 전자 메일 주소)이 있습니다. 사용자가 기존 사용자 이름을 입력하면 검색 버튼을 클릭하여 검색 할 수 있으며 사용자가 가지고있는 데이터는 editText에 표시됩니다.검색 기록 및 안드로이드 데이터베이스에서 검색

MainActivity.java

btn_Search.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 
     String searchableUser = txt_User.getText().toString(); 

     ConsUserRegistration consUserRegistration = db.searchUser(searchableUser); 

     String searchUser = consUserRegistration.getUser().toString(); 
     String searchFirst = consUserRegistration.getFirstName().toString(); 
     String searchLast = consUserRegistration.getLastName().toString(); 
     String searchEmail = consUserRegistration.getEmail().toString(); 

     txt_User.setText(searchUser); 
     txt_First.setText(searchFirst); 
     txt_Last.setText(searchLast); 
     txt_Email.setText(searchEmail);    
    } 
}); 

DatabaseHandler.java

public ConsUserRegistration searchUser(String username){ 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.query(Constants.TABLE_USER, new String[] {Constants.KEY_USER, Constants.KEY_FIRST, 
      Constants.KEY_LAST, Constants.KEY_EMAIL}, Constants.KEY_USER + " =? ", 
      new String[] { String.valueOf(username) }, null, null, null); 
    if (cursor != null) 
     cursor.moveToFirst(); 

    ConsUserRegistration search = new ConsUserRegistration (cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getString(3)); 

    return search; 

} 

그러나 사용자가 검색 버튼을 클릭하고 입력을 사용자 이름 글고에서 모든 문자를하지 않았다 때, 나는 CursorIndexOutOfBoundsException 오류를 얻고있다 DatabaseHandler에서 ConsUserRegistration search = new ConsUserRegistration (cursor.getString (0), cursor.getString (1), cursor.getString (2), cursor.getString (3));

또한 데이터베이스가 손상되어 데이터를 검색 할 수 없습니다.

+0

문제 –

+0

아차, 미안 해요은 무엇을 볼 필요가 더 정의했다. 그냥 내 질문을 편집 – androidBoomer

+0

nullPointerExceptions 어떤 코드 줄에서? logcat을 참조하십시오. –

답변

1

변경

db.searchUser(searchableUser); 
ConsUserRegistration consUserRegistration = new ConsUserRegistration(); 

ConsUserRegistration consUserRegistration = db.searchUser(searchableUser); 
+0

제안 된 코드가 작동하지만 사용자 이름을 입력하지 않은 경우 줄에있는 DatabaseHandler에서 CursorindexOutOfBoundsException이 발생합니다. ConsUserRegistration search = 새 ConsUserRegistration (cursor.getString (0), cursor.getString (1), cursor.getString (2)), cursor.getString (3)); – androidBoomer

+0

문자열 edittext를 사용하기 전에 null을 확인하십시오. – Tarun

+0

코드에서 어떻게 할 수 있습니까? – androidBoomer

-2

버튼 button_Search (버튼) findViewById를 (r.I'd.itsIdInYourXml)에;

버튼은 아마 선언 요구 사항이나 전체 코드