Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a login activity, registration activity, and profile activity. After I press the login button I'm able to display my username on the profile activity which is the activity third after login.But, I'm not able to display the first name, last name, GRE, toefl from the database to the profile activity. How vl i view each users first name, last name, gre and toefl in a textview in profile activity.

Here's my code:

This is SQLiteDB ProfileDatabase.class

public class ProfileDatabaseHelper extends SQLiteOpenHelper {

private static final int DATABASE_VERSION= 1;
private static final String DATABASE_NAME="profiles.db";
private static final String TABLE_NAME="profile";

private static final String COLUMN_PROFID="profId";
private static final String COLUMN_FNAME="firstName";
private static final String COLUMN_LNAME="lastName";
private static final String COLUMN_UNAME="userName";
private static final String COLUMN_PASS="pass";
private static final String COLUMN_GRE= "gre";
private static final String COLUMN_TOEFL= "toefl";
SQLiteDatabase db;

private static final String TABLE_CREATE = "create table profile (profId integer primary key  not null," +
        " firstName text not null, lastName text not null, userName text not null, pass text not null, gre integer not null, toefl integer not null);";

public ProfileDatabaseHelper(Context context) {
    super(context,DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(TABLE_CREATE);
    this.db=db;

}

public void insertProfile(ProfileList pl){

    db = this.getWritableDatabase();
    ContentValues values = new ContentValues();

    String query = "Select * from profile";
    Cursor cursor = db.rawQuery(query, null);
    int count = cursor.getCount();
    values.put(COLUMN_PROFID,count);
    values.put(COLUMN_FNAME,pl.getFName());
    values.put(COLUMN_LNAME,pl.getLName());
    values.put(COLUMN_UNAME,pl.getUName());
    values.put(COLUMN_PASS,pl.getPass());
    values.put(COLUMN_GRE,pl.getGre());
    values.put(COLUMN_TOEFL,pl.getToefl());

    db.insert(TABLE_NAME, null,values);
    db.close();

}


public String searchPass(String uname){
    db = this.getReadableDatabase();
    String query = "select username, pass from "+TABLE_NAME;
    Cursor cursor = db.rawQuery(query, null);
    String a, b;
    b = "Not found";
    if(cursor.moveToFirst()){
        do{
            a = cursor.getString(0);
            if(a.equals(uname)){
                b = cursor.getString(1);
                break;
            }


        }
        while(cursor.moveToNext());
    }
    return b;
}
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String query = "DROP TABLE IF EXISTS "+TABLE_NAME;
    db.execSQL(query);

  }


}

here is my login.class

public class LoginUser extends AppCompatActivity {

ProfileDatabaseHelper helper = new ProfileDatabaseHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login_user);


}

public void onBtnClick(View v){
    if (v.getId() == R.id.loginButton){

        EditText loginName = (EditText)findViewById(R.id.loginUserName);
        String loginNameStr = loginName.getText().toString();

        EditText password = (EditText)findViewById(R.id.loginPass);
        String pass = password.getText().toString();

        String passwordLogin = helper.searchPass(loginNameStr);


        if(pass.equals(passwordLogin)){


            Intent i = new Intent(LoginUser.this, ProfileUser.class);
            i.putExtra("Username", loginNameStr);
            startActivity(i);
        }

        else {
            Toast.makeText(LoginUser.this,"Username and Password don't match",Toast.LENGTH_LONG).show();
        }


    }
    if (v.getId() == R.id.signUpButton){
        Intent i = new Intent(LoginUser.this, RegisterUser.class);
        startActivity(i);
    }
}
}

This is the third activity which displays users profile

public class ProfileUser extends AppCompatActivity {

ProfileDatabaseHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile_user);



    String username = getIntent().getStringExtra("Username");
    TextView userText = (TextView)findViewById(R.id.userNameDisplayText);
    userText.setText(username);

    //How canI enter each person personal first name, last name, grey and 
     toefl


    TextView userText = (TextView)findViewById(R.id.userNameDisplayText);
    TextView userText = (TextView)findViewById(R.id.userNameDisplayText);
    TextView userText = (TextView)findViewById(R.id.userNameDisplayText);
    TextView userText = (TextView)findViewById(R.id.userNameDisplayText);



  }
 }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
182 views
Welcome To Ask or Share your Answers For Others

1 Answer

You need to edit your searchPass(username, password) method in a way that it should return complete User object when username and password is matched and then call this method before your IF condition User user = helper.searchPass(loginNameStr, password);

Now you have the user object with all user details, you need to send other stuff after checking the password like below .

if(user.getPassword().equals(passwordLogin)){
    Intent i = new Intent(LoginUser.this, ProfileUser.class);
    i.putExtra("Username", user.getUsername());
    i.putExtra("firstName", user.getFirstName());
    i.putExtra("lastName", user.getLastName());
    i.putExtra("gre", user.getGre());
    i.putExtra("toefl", user.getToefl());
    startActivity(i);
}

and then retrieve the details from intent in your ProfileUser activity like below

String username = getIntent().getStringExtra("Username");
String firstName = getIntent().getStringExtra("firstName");
String lastName = getIntent().getStringExtra("lastName");
String gre = getIntent().getStringExtra("gre");
String toefl = getIntent().getStringExtra("toefl");

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...