2016-12-17 37 views
0

DrawerLayoutの内側にあるTextViewのテキストを設定しようとしていますが、問題は、毎回テキストを設定しようとするたびにNullExceptionが発生しています。私はそれが開いているかどうかを確認していないので。私はDrawerLayout内のTextViewにアクセスする方法

private TextView my_textView; 

onCreate..... 

Drawer class... 

my_textView = (Textview)findViewByid(R.id.nav_text); 

enter image description here

おかげで...普通の何もしないではありませんよ!

+0

ですか? –

答えて

1

私はテキストがNavigationViewヘッダーの内側にあると仮定しています。

まず、ヘッダ内のビューを初期化し、あなたのNavigationViewヘッダ

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 

次を初期化します。

TextView my_textView = (TextView) navigationView.getHeaderView(0).findViewById(R.id.nav_text); 

さて、

my_textView.setText("New Text"); 

は、この情報がお役に立てば幸いsetText方法を使用してテキストを変更します。

+0

ありがとう!できます! –

0

findViewByid()の代わりにdrawerLayout.findViewByid()を呼び出す必要があります。 textviewはdrawerLayoutで使用できるためです。したがって、コードを次のように変更してください

private TextView my_textView; 

onCreate..... 

Drawer class... 

my_textView = (Textview)drawerLayout.findViewByid(R.id.nav_text); 
0

あなたは、ヘッダビューにアクセスしたい場合は以下のようにしてみてください。それは `ヘッダNavigationView`に

View headerView = LayoutInflater.from(this).inflate(R.layout.nav_header_main, null); 
     navigationView.addHeaderView(headerView); 

     TextView tvUserName = (TextView) headerView.findViewById(R.id.admin_header_name_tv); 
関連する問題