Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 首次用户登录android后显示空值_Java_Android_Sqlite - Fatal编程技术网

Java 首次用户登录android后显示空值

Java 首次用户登录android后显示空值,java,android,sqlite,Java,Android,Sqlite,我在一个应用程序中有3个片段,其中一个片段显示了SQLite数据库中的用户名。当我注册一个新用户并第一次登录时,在用户名应该出现的textview中,它显示空值,但当我注销并再次登录同一个用户时,用户名显示为它应该显示的值 注册用户后,所有数据都插入到数据库中,我已经检查过了 你知道什么会导致这个问题吗?我将根据请求添加一些代码,因为我不知道代码的哪一部分、片段或java文件可能会导致这种情况 已编辑 我添加了一些代码来帮助解决这个问题 主屏幕内的登录功能(一旦应用程序启动): 我自己设法解决了

我在一个应用程序中有3个片段,其中一个片段显示了SQLite数据库中的用户名。当我注册一个新用户并第一次登录时,在用户名应该出现的textview中,它显示空值,但当我注销并再次登录同一个用户时,用户名显示为它应该显示的值

注册用户后,所有数据都插入到数据库中,我已经检查过了

你知道什么会导致这个问题吗?我将根据请求添加一些代码,因为我不知道代码的哪一部分、片段或java文件可能会导致这种情况

已编辑

我添加了一些代码来帮助解决这个问题

主屏幕内的登录功能(一旦应用程序启动):


我自己设法解决了这个问题。。问题不在java文件中,而是由于某种原因发送到java的php文件中

在我使用的php函数中:

$stmt->bind_result($id, $unique_id, $name, $email, $encrypted_password, $salt, $created_at, $updated_at);
$user = $stmt->fetch();
但后来改成了

$user = $stmt->get_result()->fetch_assoc(); 

这就解决了问题。

您确定变量不应该为空吗?是否分配它,然后显示?可能会有一些代码需要处理。问题可能在任何时候-数据库未返回用户名,控制器/DAO层未将正确的名称返回给客户端,或者客户端代码处理不正确,因此无法显示。。因此,理想情况下,您应该将所有3层中的相关部分放入。一旦用户注册,他的详细信息将添加到mysql和sqlite数据库中。所有数据都将插入,但没有任何可显示的空数据。我将在second@hagrawal但为什么当用户第二次登录时它会起作用呢?这就是我们将尝试了解的。。
  public void onResponse(String response) {
            Log.d(TAG, "Register Response: " + response.toString());
            hideDialog();

            try {
                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");
                if (!error) {

                    // User successfully stored in MySQL
                    // Now store the user in sqlite
                    String uid = jObj.getString("uid");

                    JSONObject user = jObj.getJSONObject("user");
                    String name = user.getString("name");
                    String email = user.getString("email");
                    String created_at = user.getString("created_at");

                    // Inserting row in users table
                    db.addUser(name, email, uid, created_at);

                    // Launch login activity
                    Intent intent = new Intent(
                            Register.this,
                            Main.class);
                    startActivity(intent);
                    finish();
                } else {

                    // Error occurred in registration. Get the error
                    // message
                    error_msg.setVisibility(View.VISIBLE);
                    String msg = jObj.getString("error_msg");
                    error_msg.setText(msg);


                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Registration Error: " + error.getMessage());
            Toast.makeText(getApplicationContext(),
                    error.getMessage(), Toast.LENGTH_LONG).show();
            hideDialog();
        }
    }) {
$stmt->bind_result($id, $unique_id, $name, $email, $encrypted_password, $salt, $created_at, $updated_at);
$user = $stmt->fetch();
$user = $stmt->get_result()->fetch_assoc();