Was ich erreicht habe - Abrufen des Benutzernamens von Facebook und Anzeigen in anderer Aktivität (funktioniert gut).
Was arbeite ich an und konnte es nicht bekommen, um arbeits arbeite ich an der Navigationsleiste Aktivität genau wie die folgenden ein, und diese Aktivität (mehr oder weniger) von Android Studio selbst zur Verfügung gestellt Platzieren des abgerufenen Benutzernamens in der Nav-Kopfzeile in der Aktivität Navigationsaktivität
Ich hoffe, Sie können feststellen, dass ein Benutzername dieses zufälligen Typen in diesem Bild oben ist, hat dieser Typ seinen Namen in Text-Ansicht hart-codiert, die ich nicht tun will, stattdessen möchte ich es von Facebook holen nach dem Login.Ich kann erfolgreich den zweiten Teil tun (Holen Sie den Namen von Facebook) Ich einfach nicht, wie Sie zuweisen, lassen Sie mich wissen, ob es eine Möglichkeit gibt, es zu tun.nach unten ist die nav_header.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:src="@android:drawable/sym_def_app_icon" />
<TextView
android:id="@+id/manner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="ma"
android:textColor="@color/black"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="[email protected]" /></LinearLayout>
Weise ist die ID, wo ich die abgerufenen Benutzernamen angezeigt werden wollte und dies ist die .java-Datei
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_testing2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
////////Code is used to fetch the user name////////////
Bundle b = getIntent().getExtras();
////////Code is used to display the user name after fetchig it from other activity////////////
TextView facebookName = (TextView) findViewById(R.id.manner);
facebookName.setText(b.getCharSequence("name"));
/////////////////////////
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.testing2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_camera) {
// Handle the camera action
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
Es gibt keine Fehler in diesem Code ist, weil der Code perfekt für verschiedene Aktivitäten mit dem unten funktioniert
Textansicht<TextView
android:id="@+id/manner"
android:layout_gravity="left"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />
Es sagt Kann nicht Benutzernamen auflösen, aber wenn ich es in Anführungszeichen wie diesem "userName" gebe, wird der Text (userName) selbst im Navigationsfach angezeigt – Eggsy
Ich setze den Benutzernamen als eine Variable dort. Bitte akzeptieren Sie dies als Antwort – crashOveride
Ich fand die Lösung, aber ich hätte es nicht ohne Ihre Hilfe thankyou so viel Kumpel tun können, danke, was ich getan habe, war ich die letzte Zeile mit 'txtProfileName.setText (b.getCharSequence ("name ")); ' – Eggsy