Androidスタジオ内のDrawerLayoutテンプレートを使用しています。私はコードを介してヘッダーのイメージとテキストを変更する方法を把握しようとしています。 Android StudioのDrawerLayoutテンプレートのImageViewとTextを変更しますか?
は、私はそうのようなナビゲーションビュー内から「idを」見つけてみました:NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
usrTag = (TextView)navigationView.findViewById(R.id.usrName);
tagrEmail = (TextView)navigationView.findViewById(R.id.usrEmail);
tagrPic = (CircleImageView)navigationView.findViewById(R.id.usrImg);
しかし、私は、テキストまたはそれらのビューのいずれかの何かを変更しようとした場合、私は、nullポインタ例外を取得します。私もfindViewByIdで試してみましたが、それもうまくいきませんでした。何か案は?私は欲求不満で困惑しています。私がしなければならなかったのは、idでレイアウトを見つけて、そのレイアウト内からidでビューを見つけることだと思っていましたが、そうではありませんでした。 Androidのメーカーで
いくつかの明確化
、[ファイル]> [新規]> [新規プロジェクト]を選択し、ウィザードを通過し、ナビゲーションビューのアクティビティを選択した場合、あなたは、私が言及しています正確に何が表示されます。 メインクラスはアクティビティです。レイアウトへの参照がないMainActivityクラスで
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/navProfile"
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"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/usrImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/usrName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
android:text="Android Studio"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
<TextView
android:id="@+id/usrEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="[email protected]" />
</LinearLayout>
:アクティビティを作成し、デフォルトでは、このようになりますnav_header_main.xmlと呼ばれるレイアウトを参照します。レイアウトへの参照を作成し、そのレイアウト内のビューをfindViewByIdを使用して検索しようとしましたが、まだNULLポインタ例外があります。
はい私はそれらのIDが存在しているかどうかをチェックしました。 –
フラグメントまたはアクティビティを使用していますか? – Snoobie
@Snoobieアンドロイドスタジオで新しいプロジェクトを選択すると、デフォルトのナビゲーションビューアクティビティが使用されています。私はどのメニュー項目にもアクセスしようとしていません。あなたが最初の答えの下に私のコメントを見て、あなたは私が参照しているレイアウトが表示されます。 @SteveC。 –