2017-06-06 23 views
1

「ユーザーログイン」というテキストがあるナビゲーションヘッダーで操作を実行しています。 「ログインユーザー」テキストは、navheaderというレイアウトファイルにあります。ナビゲーションヘッダーでアクションを実行する - Xamarin

私のホームページ(主な活動)では、私がその活動をしたい場所です。私は、ナビゲーション引き出しを引き出し、 "ユーザーのログイン" をクリックすると、私はObject reference not set to an instance of an object.

nav_header.axml

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="LOG IN" 
     android:textAppearance="@style/TextAppearance.AppCompat.Body1" 
     android:textColor="#FFFFFF" 
     android:textSize="16dp" 
     android:id="@+id/login"/> 

メインActivity.cs

loginUser = FindViewById<TextView>(Resource.Id.login); 

loginUser.Click += login_User; 

private void login_User(object sender, EventArgs e) 
    { 
     Intent intent = new Intent(this, typeof(loginPage)); 
     this.StartActivity(intent); 


    } 
スローされた例外を取得します
+0

MainActivity.csファイルの 'OnCreate'メソッドはどのようになっていますか? – apineda

答えて

2

android.support.design.widget.NavigationViewを使用している場合は、ヘッダービューがMainActivityから直接ビューにアクセスすることはできませんあなたのxmlコードの一部をMainActivityに向けてください。

var navigationView = FindViewById<NavigationView>(Resource.Id.nav_view); //whatever your Id for navigationview is 
var headerView = navigationView.GetHeaderView(0); 
var loginUser = headerView.FindViewById<TextView>(Resource.Id.login); 

loginUser.Click += login_User; 

private void login_User(object sender, EventArgs e) 
{ 
    Intent intent = new Intent(this, typeof(loginPage)); 
    this.StartActivity(intent); 
} 
+0

ああ、その魔法が働いた!!!!!ありがとう。だからGetHeaderView(0)はインデックスのようなものですか? – XamarinDevil

+0

素晴らしい!どういたしまして!はい。 – Yupi

関連する問題