Je crée DrawerLayout et il a plus de fichiers XML pour chaque partie, donc je n'ai que 1 classe et plusieurs fichiers XML. Maintenant, je veux définir texte TextView d'un fichier XML dans mon activité principale et j'ai essayé d'utiliser des inflatations de mise en page, mais ça ne fonctionnait pas, il me donnait des erreurs dans certains cas et dans d'autres, rien ne se produisait.
Voici mon code activity_menu.xml (que l'on est le principal fichier xml que j'utilise dans MenuActivity.class)Modification de texte TextView à partir d'un autre fichier XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:background="@color/colorBackground"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_navigation"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
app:itemTextColor="@color/colorPrimary"
android:background="@color/colorBackground"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_navigation"
app:menu="@menu/activity_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
est ici nav_header_navigation.xml (il contient 2 TextViews dont le texte je veux changer de mon MenuActivity classe)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/linearLayout1"
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"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
app:srcCompat="@android:drawable/sym_def_app_icon" />
<TextView
android:id="@+id/imeNaloga"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text=""
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/modelMarka"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="[email protected]" />
</LinearLayout>
S'il vous plaît être plus précis. Joindre du code java –
Comme vous pouvez le voir, j'ai attribué un identifiant aux deux textviews et quand j'essaie de l'appeler comme imeNaloga = (EditText) findViewById (R.id.imeNaloga); , puis imeNaloga.setText ("Quelque chose"); mais je reçois une exception de pointeur nul – Praziluk
J'ai également essayé: LayoutInflater inflater = (LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE); Vue vi = inflater.inflate (R.layout.nav_header_navigation, null); //log.xml est votre fichier. TextView tv = (TextView) vi.findViewById (R.id.imeNaloga); tv.setText ("Nesto"); pas d'erreur, mais rien ne se passe dans l'application – Praziluk