2016-08-17 7 views
0

私はどこにでも見てきましたが、この質問をしている人が非常に多く、現在まで何も動いていません。私は現在、断片に基づいているアプリケーションに取り組んでいます。誰かがIDを入力すると、名前と画像がダウンロードされます。ナビゲーションヘッダーフィールドで名前を変更できるようにしたい。現在、これは、これらのいずれもが、このエラーアンドロイドのナビゲーションヘッダーのテキストとイメージをプログラムで変更する方法

FATAL EXCEPTION: main 

Process: com.horizonservers.horizon, PID: 4042 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.horizonservers.horizon/com.horizonservers.horizon.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.NavigationView.addHeaderView(android.view.View)' on a null object reference                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void' 
android.support.design.widget.NavigationView.addHeaderView(android.view.View)' on a null object reference 
at com.horizonservers.horizon.MainFragment.onCreateView(MainFragment.java:153) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) 
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339) 
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:601) 
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237) 
at android.app.Activity.performStart(Activity.java:6253) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
at android.app.ActivityThread.-wrap11(ActivityThread.java)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
で終わる私もここにこの方法を試してみました、私はここに https://code.google.com/p/android/issues/detail?id=190786

から取得した私は

View header = LayoutInflater.from(getActivity()).inflate(R.layout.nav_header_main, null); 
     navigationView.addHeaderView(header); 
     test = (TextView) header.findViewById(R.id.username); 
     test.setText("HELLO"); 

を使用していたコードIn android how to set navigation drawer header image and name programmatically in class file?

です

誰かが、ナビゲーションヘッダーのサイドバーのテキストとイメージを変更する方法を知っていますか? https://gyazo.com/23534130df4aff888708415b368aa1fa

+0

私は答えを探していました....私も答えを探しています – Manish

+0

これまで見た限り、これを行う方法はありません。私は別のアプリの開発者と連絡を取った。サイドバーはちょうどそれを行うが、彼は彼が最初から彼を建てたと言った。 – Destry

+0

これを行うための他の方法.. – Manish

答えて

0

エラーに基づいて、navigationViewがnullのように見えます。ヘッダーを拡張する前に、navigationViewが適切に初期化されていることを確認してください。フラグメントをどのように/どこで使用しているかによって、フラグメントライフサイクルは、ヘッダーの膨張後にnavigationViewを初期化して、NullPointerExceptionをスローする可能性があります。

上記以外の場合、最近のGoogleデザインライブラリのデザイン変更で使用されたアンドロイド環境に、ナビゲーションヘッダーのインフレーションが非常に敏感になっています。以下は私の包括的な解決策でした。多分それはあなたのために働くでしょう。

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
View header = navigationView.inflateHeaderView(R.layout.nav_header_main); 
test = (TextView) header.findViewById(R.id.username); 
test.setText("HELLO"); 
+0

残念これが助けになりませんでした。私はこの回答を早く見つけて、それを試してみることに決めましたが、私はまだ同じエラーを受けます。 – Destry

関連する問題