2017-03-03 4 views
0

Ich habe es geschafft, mehrere Konten, den Namen und die E-Mail anzuzeigen. Aber ich wollte auch eine eindeutige Nummer weitergeben, wenn ich den Namen und die E-Mail übergebe, sodass ich, wenn ich auf den Account klicke, auf die E-Mail, den Namen und die eindeutige Nummer tippen kann. Derzeit kann ich nur auf den Namen und die E-Mail des aktuellen Profils klicken, wenn ich darauf klicke.Wie man Parameter auf MaterialDrawer hinzufügt

Das ist meine Json

"sacco_info": [ 
{ 
    "name": "Alex Wanjala", 
    "email": "[email protected]" 
    "corporate_no": "169500" 
} 
] 

Das ist mein Code

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

    // Create the AccountHeader 
    Api.getVolley(this, Api.GetCorporateNumber,"{\n" + 
      " \"authorization_credentials\": {\n" + 
      " \"api_key\": \""+Const.getInstance().getAuthorizationcredentials().getApi_key()+"\",\n" + 
      " \"token\": \""+Const.getInstance().getAuthorizationcredentials().getToken()+"\"\n" + 
      " },\n" + 
      " \"msisdn\": \""+Const.getInstance().getMember().getMSDN()+"\"\n" + 
      "}",new Api.VolleyCallback() { 

     @Override 
     public void onSuccess(String response) { 
      try { 
       JSONObject jsonObj = new JSONObject(response); 
       JSONArray jsonArray= jsonObj.getJSONArray("sacco_info"); 

       for(int i=0;i<jsonArray.length();i++){ 

        JSONObject jsonObject = jsonArray.getJSONObject(i); 

        profile = new ProfileDrawerItem().withName(jsonObject.getString("name")) 
          .withEmail(jsonObject.getString("email")).withIcon(getResources().getDrawable(R.drawable.profilepic)); 
        headerResult.addProfiles(profile); 

       } 

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

     } 
    }); 


    headerResult = new AccountHeaderBuilder() 
      .withActivity(DashboardMain.this) 
      .withHeaderBackground(R.drawable.materiale) 
      .withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() { 
       @Override 
       public boolean onProfileChanged(View view, IProfile profile, boolean currentProfile) { 
        Toast.makeText(getApplicationContext(), profile.getEmail().toString(),Toast.LENGTH_LONG).show(); 
        Toast.makeText(getApplicationContext(), profile.getName().toString(),Toast.LENGTH_LONG).show(); 
        //Toast the corporate_no here 
        return false; 
       } 
      }) 
      .build(); 


    result = new DrawerBuilder() 
      .withActivity(DashboardMain.this) 
      .withToolbar(toolbar) 
      .withAccountHeader(headerResult) 
      .addDrawerItems(
        item1, item2,item3, item4, item5, item6, 
        new DividerDrawerItem(), 
        item7, item8,item9,item10,item11 
      ) 
      .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { 
       @Override 
       public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { 
        // do something with the clicked item :D 
        onNavigationItemSelected(position); 
        return false; 
       } 
      }) 
      .build(); 

ist oder ob es eine Möglichkeit ist, kann ich in einem Array-Schlüsselwert-Paaren E-Mail als Schlüssel speichert die E-Mail hält und die corparate_no, dann zu der Zeit, wo ich Toast die E-Mail implementiert habe, übergibt es diese E-Mail als Parameter an die Array-Suche, wo die E-Mail existiert und gibt die Corpare_no zurück.

Antwort

0

Ich denke, dass Sie MaterialDrawer in Großbuchstaben enthalten verwenden Sie die Material-Schublade-Bibliothek als Modul. Aktualisieren Sie diese spezifische Datei des Layouts, die diese Daten von Name E-Mail und Profil Bild zeigt.

Setzen Sie das Firmenetikett direkt unter den Namensparameter und erstellen und laden Sie Ihre App erneut. Sie können auf dieses Etikett mit der von Ihnen angegebenen ID zugreifen.

Layout-XML-Datei Link

[https://github.com/mikepenz/MaterialDrawer/blob/develop/app/src/main/res/layout/material_drawer_compact_persistent_header.xml][1] 
Verwandte Themen