Android 更改了导航抽屉显示屏上的名称和电子邮件profil-like playstore

Android 更改了导航抽屉显示屏上的名称和电子邮件profil-like playstore,android,navigation-drawer,Android,Navigation Drawer,我想将导航抽屉名称和电子邮件中配置文件的外观更改为playstore中的名称和电子邮件用户。 这是我使用MySQL登录的代码: LoginActivity.java @Override public void onResponse(String response) { try { JSONObject jsonObject= new JSONObject(response);

我想将导航抽屉名称和电子邮件中配置文件的外观更改为playstore中的名称和电子邮件用户。 这是我使用MySQL登录的代码:

LoginActivity.java

 @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject= new JSONObject(response);
                        String success = jsonObject.getString("success");
                        JSONArray jsonArray = jsonObject.getJSONArray("login");

                        if (success.equals("1")){

                            for (int i=0; i<jsonArray.length();i++){
                                JSONObject object= jsonArray.getJSONObject(i);
                                String name = object.getString("name").trim();
                                Toast.makeText(LoginActivity.this, "Login Berhasil. \nSelamat Datang : "+name, Toast.LENGTH_SHORT).show();
                                Intent intent = new Intent(LoginActivity.this,MainActivity.class);
                                intent.putExtra("name", name);
                                intent.putExtra("email", email);
                                startActivity(intent);
                                loading.setVisibility(View.GONE);

                            }
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                        loading.setVisibility(View.GONE);
                        btnLogin.setVisibility(View.VISIBLE);
                        Toast.makeText(LoginActivity.this, "Error Check Kembali Email dan Password"+e.toString(), Toast.LENGTH_SHORT).show();
                    }
                }
            },
            new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            loading.setVisibility(View.GONE);
            btnLogin.setVisibility(View.VISIBLE);
            Toast.makeText(LoginActivity.this, "Error"+error.toString(), Toast.LENGTH_SHORT).show();
        }
public class MainActivity extends AppCompatActivity {
    private DrawerLayout drawer;
    private TextView name,email;

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

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        name = findViewById(R.id.name);
        email = findViewById(R.id.email);

        Intent intent = getIntent();
        String extraName = intent.getStringExtra("name");
        String extraEmail = intent.getStringExtra("email");

        name.setText(extraName);
        email.setText(extraEmail);

        drawer = findViewById(R.id.drawer_layout);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,drawer,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
    }

    @Override
    public void onBackPressed() {
        if (drawer.isDrawerOpen(GravityCompat.START)){
            drawer.closeDrawer(GravityCompat.START);
        }else {
            super.onBackPressed();
        }

    }
}

您必须先获取标题视图,然后再获取感兴趣的子视图,然后才能设置文本,例如

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //... other onCreate setup        

        NavigationView mNavigationView = findViewById(R.id.nav_view);               
        View headerView = mNavigationView.getHeaderView(0);
        // get user name and email textViews
        TextView userName = headerView.findViewById(R.id.text_user_name);
        TextView userEmail = headerView.findViewById(R.id.text_email_address);
        // set user name and email
        userName.setText("username");
        userEmail.setText("email.user@domain.com");

}

您可以获得导航抽屉的标题视图,如nav.getHeaderView(0);然后更改子视图:)以便在setContentView之后替换nav.getHeaderView?好的,我先试试
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //... other onCreate setup        

        NavigationView mNavigationView = findViewById(R.id.nav_view);               
        View headerView = mNavigationView.getHeaderView(0);
        // get user name and email textViews
        TextView userName = headerView.findViewById(R.id.text_user_name);
        TextView userEmail = headerView.findViewById(R.id.text_email_address);
        // set user name and email
        userName.setText("username");
        userEmail.setText("email.user@domain.com");

}