Как отправить данные с помощью putExtra из Activity в класс Java? - PullRequest
1 голос
/ 14 июля 2020

Я хочу отправить имя пользователя после успешного входа в другой класс Java.

Вот фрагмент из моей MainActivity. java:

    public class CheckLogin extends AsyncTask<String, String, String> {
        String msg ="";
        Boolean isSuccess = false;

        protected void onPreExecute() {

        }

        @Override
        protected String doInBackground(String... strings) {
            String username = loginUsername.getText().toString();
            String password = loginPassword.getText().toString();

            UserDetails ud = new UserDetails(username,password);

            if (DbConnectionClass.connection == null) {
                new DbConnectionClass().connectDB();
            }
            if (DbConnectionClass.connection != null) {
                Statement statement = null;
                try {
                    statement = DbConnectionClass.connection.createStatement();
                    ResultSet resultSet = statement.executeQuery("SELECT * FROM USERLOGINDETAILS_T WHERE user_name='"+ ud.getUsername() +"' AND user_password='"+ud.getPassword()+"'");
                    if(resultSet.next())
                    {

                        msg = "Login Successful";
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
                            }
                        });

                        isSuccess = true;
                        Intent startIntent = new Intent(getApplicationContext(), TabbedActivity.class);

                        //PROBLEM HERE
                        Intent i = new Intent(MainActivity.this, taobaoListAdapter.class);
                        i.putExtra("Key", username);
                        //***

                        startIntent.putExtra("UserLoginDetails", username); //send user details to tabbedactivity
                        startActivity(startIntent);
                    }
                    else if (username.trim().equals("") || password.trim().equals("")) {
                        msg = "Please Enter Username and Password";
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
                            }
                        });

                    }
                    else
                    {
                        msg = "Username or Password Incorrect";
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
                            }
                        });

                        isSuccess = false;
                    }
                }
                catch(SQLException e)
                {

                }

            }
            return msg;
        }
    }

Но в моем класс получения taobaoListAdapter.java, когда я использую String s = getIntent().getExtras("UserLoginDetails");, getIntent () показывает ошибку. Я считаю, что это связано с тем, что класс Java не расширяет Activity.

Как мне обойти это? Я рассмотрел другие вопросы, похожие на мой, но не смог найти решения.

1 Ответ

1 голос
/ 14 июля 2020

Вам необходимо расширить класс до активности appcompat. Вы отправляете свои данные адаптеру. Попробуйте получить данные в активности appcompat и передать их адаптеру с помощью конструктора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...