2017-02-02 7 views
0

IOnClickListenerのどのソースからonClickがトリガーされているかをどのように判断できますか?2のSetOnClickListenerのソースC#

私はSetOnClickListener

private void setUpListener() 
    { 
     changePassword.SetOnClickListener(this); 
     forgotPassword.SetOnClickListener(this); 
    } 

のこの初期化何が起こるしたいことはビューVでスイッチケースを入れて、あなたのOnClickメソッドで

public void OnClick(View v) 
    { 
     if(source == changePassword) 
     { 
      Intent intent = new Intent(this, typeof(ChangePassword)); 
      StartActivity(intent); 
     } 
     else if(source == forgotPassword) 
     { 
      Intent intent = new Intent(this, typeof(ForgotPassword)); 
      StartActivity(intent); 
     } 
    } 

答えて

1

であると特定してケースを指定していidは上記のビューに割り当てられます。

+0

私はそれを試してみましょう – jace

+0

ああもう一つはスイッチのv.GetIdを確認してください – Mike

+0

はありませんGetId :)しかし、ありがとう:)私は今あなたの最初の答えを試しています。 v.Idは存在しますが – jace

1

私は答えを得ました! :D @Mikeに感謝:)コメントのいくつかはC#では実際には存在しませんが(おそらくそれはアンドロイドコーディングですが)、しかし役立ちます!

Resource.Id.txtChangePasswordはそれがHERE

を実行している作ら使用して、私のTextViewのIDと比較そしてv.Idによってビューに送られたidが素晴らしいです を得るには、私のコードは

public void OnClick(View v) 
    { 
     int id = v.Id; //get id here 
     if (id == Resource.Id.txtChangePassword) //comparison 
     { 
      Intent intent = new Intent(this, typeof(ChangePassword)); 
      intent.PutExtra(IntentExtras.activitySourceSerialized, JsonConvert.SerializeObject(Strings.loginActivity)); 
      StartActivity(intent); 
     } 
     else if(id == Resource.Id.txtForgotPassword) //comparison 
     { 
      Intent intent = new Intent(this, typeof(ForgotPassword)); 
      intent.PutExtra(IntentExtras.activitySourceSerialized, JsonConvert.SerializeObject(Strings.loginActivity)); 
      StartActivity(intent); 
     } 
    } 

IS CHEERS !!!

関連する問題