Java 将用户名值从数据库显示到文本视图

Java 将用户名值从数据库显示到文本视图,java,android,database,sqlite,Java,Android,Database,Sqlite,我是Java新手,我想在layout activity_home.xml中成功登录到我的文本视图后,在SQLite数据库中显示我的表中的用户名值 我不知道如何用我的代码获取用户名值 我的activity_home.xml布局中的文本视图代码 <TextView android:id="@+id/nameuser" android:layout_width="wrap_content" android:layout_height="wrap_content"

我是Java新手,我想在layout activity_home.xml中成功登录到我的文本视图后,在SQLite数据库中显示我的表中的用户名值 我不知道如何用我的代码获取用户名值

我的activity_home.xml布局中的文本视图代码

    <TextView
    android:id="@+id/nameuser"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="18dp"
    android:layout_marginTop="32dp"/>
Session.java

public class Session {
    SharedPreferences prefs;
    SharedPreferences.Editor editor;
    Context ctx;

    public Session(Context ctx){
        this.ctx = ctx;
        prefs = ctx.getSharedPreferences("myapp", Context.MODE_PRIVATE);
        editor = prefs.edit();
    }

    public void setLoggedin(boolean logggedin){
        editor.putBoolean("loggedInmode",logggedin);
        editor.commit();
    }

    public boolean loggedin(){
        return prefs.getBoolean("loggedInmode", false);
    }
}
LoginActivity.java

public class LoginActivity extends AppCompatActivity implements View.OnClickListener{

    private Button login;
    private EditText etUsername, etPass;
    private DbHelper db;
    private Session session;
    TextView RegisterDisini;

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

            db = new DbHelper(this);
            session = new Session(this);
            login = (Button)findViewById(R.id.btnLogin);
            etUsername = (EditText)findViewById(R.id.etUsername);
            etPass = (EditText)findViewById(R.id.etPass);
            login.setOnClickListener(this);
            RegisterDisini = (TextView) findViewById(R.id.RegisterDisini);

            RegisterDisini.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent registerHere = new Intent(LoginActivity.this, RegisterActivity.class);
                    startActivity(registerHere);
                }
            });

            if(session.loggedin()){
                startActivity(new Intent(LoginActivity.this,HomeActivity.class));
                finish();
            }
        }

        @Override
        public void onClick(View v) {
            switch(v.getId()){
                case R.id.btnLogin:
                    login();
                    break;
                default:
            }
        }

        private void login(){
            String username = etUsername.getText().toString();
            String pass = etPass.getText().toString();

            if(db.getUser(username,null,pass)){
                session.setLoggedin(true);
                startActivity(new Intent(LoginActivity.this, HomeActivity.class));
                finish();
            }else{
                Toast.makeText(getApplicationContext(), "Wrong username/password",Toast.LENGTH_SHORT).show();
            }
        }
    }

登录成功后,使用intent将用户名传递给您的HomeActivity

      private void login(){
        String username = etUsername.getText().toString();
        String pass = etPass.getText().toString();

        if(db.getUser(username,null,pass)){
            session.setLoggedin(true);
            Intent intent=new Intent(this,HomeActivity.class);
            intent.putExtra("username",username);
            startActivity(intent);
            finish();
        }else{
            Toast.makeText(getApplicationContext(), "Wrong username/password",Toast.LENGTH_SHORT).show();
        }
    }


// now get Username in HomeActivity like this

 String username=getIntent().getStringExtra("username");
  if(!TextUtils.isEmpty(username)){
    // and set on your textview here
     nameuser.setText(""+username);
 }
1.根据注释将行添加到LoginActivity
公共类LoginActivity扩展AppCompatActivity实现View.OnClickListener{

public static final String INTENTEXTRAKEY_LOGGEDINUSERNAME=“iek_LOGGEDINUSERNAME”;//错误太多:无法解析符号sqLiteDatabase,游标,并且您没有告诉我如何从intent获取值并进行设置。因此,我可以在登录textViewStill error后从sqlite数据库显示用户名,代码类似于此post getUser()方法将返回字符串类型并仅向getUser()传递两个参数(email和pass)方法你想使用用户名和密码登录吗?不,我想在我的文本视图布局示例中显示用户名。当我使用用户名“Kira”登录时,我的布局中的文本视图将更改为“Kira”。我已经使用用户名和密码成功登录。很抱歉,为什么我的文本视图什么也不显示?它不显示任何用户名2019-06-02 14:30:15.837 1953-2100/system_process E/TaskPersister:访问最近目录(目录不存在?)时发生文件错误。在
开始活动(意图)
后,尝试注释finish(),即have
//finish()
。您还需要在阅读后检查代码。因为像您经常做的那样,先执行
startActivity
,然后执行
finish
。您应该执行
finish
(返回调用活动)或
startActivity
,两者都不太可能。尤其是
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{

    private Button login;
    private EditText etUsername, etPass;
    private DbHelper db;
    private Session session;
    TextView RegisterDisini;

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

            db = new DbHelper(this);
            session = new Session(this);
            login = (Button)findViewById(R.id.btnLogin);
            etUsername = (EditText)findViewById(R.id.etUsername);
            etPass = (EditText)findViewById(R.id.etPass);
            login.setOnClickListener(this);
            RegisterDisini = (TextView) findViewById(R.id.RegisterDisini);

            RegisterDisini.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent registerHere = new Intent(LoginActivity.this, RegisterActivity.class);
                    startActivity(registerHere);
                }
            });

            if(session.loggedin()){
                startActivity(new Intent(LoginActivity.this,HomeActivity.class));
                finish();
            }
        }

        @Override
        public void onClick(View v) {
            switch(v.getId()){
                case R.id.btnLogin:
                    login();
                    break;
                default:
            }
        }

        private void login(){
            String username = etUsername.getText().toString();
            String pass = etPass.getText().toString();

            if(db.getUser(username,null,pass)){
                session.setLoggedin(true);
                startActivity(new Intent(LoginActivity.this, HomeActivity.class));
                finish();
            }else{
                Toast.makeText(getApplicationContext(), "Wrong username/password",Toast.LENGTH_SHORT).show();
            }
        }
    }
      private void login(){
        String username = etUsername.getText().toString();
        String pass = etPass.getText().toString();

        if(db.getUser(username,null,pass)){
            session.setLoggedin(true);
            Intent intent=new Intent(this,HomeActivity.class);
            intent.putExtra("username",username);
            startActivity(intent);
            finish();
        }else{
            Toast.makeText(getApplicationContext(), "Wrong username/password",Toast.LENGTH_SHORT).show();
        }
    }


// now get Username in HomeActivity like this

 String username=getIntent().getStringExtra("username");
  if(!TextUtils.isEmpty(username)){
    // and set on your textview here
     nameuser.setText(""+username);
 }
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{

    public static final String INTENTEXTRAKEY_LOGGEDINUSERNAME = "iek_loggedinusername"; //<<<<<<<<<< ADDED THIS LINE

    private Button login;
private void login(){
    String username = etUsername.getText().toString();
    String pass = etPass.getText().toString();

    if(db.getUser(username,null,pass)){
        session.setLoggedin(true);
        //startActivity(new Intent(LoginActivity.this, HomeActivity.class)); <<<<<<<<< OLD CODE
        Intent intent = new Intent(LoginActivity.this,HomeActivity.class); //<<<<<<<<<< NEW CODE
        intent.putExtra(INTENTEXTRAKEY_LOGGEDINUSERNAME,username); //<<<<<<<<<< NEW CODE
        startActivity(intent); //<<<<<<<<<< NEW CODE
        finish();
    }else{
        Toast.makeText(getApplicationContext(), "Wrong username/password",Toast.LENGTH_SHORT).show();
    }
}
public class HomeActivity extends AppCompatActivity {

    TextView nameuser, walletuser, mainmenus,
            pagetitle, pagesubtitle;

    Button btnguide;
    Animation atg, atgtwo, atgthree;
    ImageView imageView3;
    SharedPreferences sharedpreferences;
    Intent intent;
    private Session session;
    TextView btnLogout, btnDaftarBarang, btnTambah;

    String loggedinusername; //<<<<<<<<<< ADDED
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    session = new Session(this);
    loggedinusername = this.getIntent().getStringExtra(LoginActivity.INTENTEXTRAKEY_LOGGEDINUSERNAME); //<<<<<<<<<<ADDED
    atg = AnimationUtils.loadAnimation(this, R.anim.atg);
    atgtwo = AnimationUtils.loadAnimation(this, R.anim.atgtwo);
    atgthree = AnimationUtils.loadAnimation(this, R.anim.atgthree);

    nameuser = findViewById(R.id.nameuser);
    nameuser.setText(loggedinusername); //<<<<<<<<<< ADDED