2016-10-10 15 views
1
btn_Login.setOnClickListener(this); 

アンドロイドスタジオで。onclickリスナー(this)は何を意味していますか?

私はこれを無数の場所で見ました。これは何を意味するのでしょうか?私はthisがどのように動作するのか知っていますが、そのとき呼び出されるリスナは何ですか?

この例からである。この例ではLink

+3

は、それが "リスナー" と呼ばれる実装し、この後

buttonX.setOnClickListener(this); 

はこれを使用し、各ボタンの活動でOnClickListener

public class MyActivity extends Activity implements View.OnClickListener { } 

を実装します。あなたがいるクラスの定義を見て、それが興味深い何かを実装しているかどうかを見てください。 – ajb

+1

この最初の記事は、https://docs.oracle.com/javase/tutorial/java/concepts/interface.html – peter

+0

を読んでみてください。これはAndroid向けの質問ではありません。純粋に簡単にJavaの質問です。 – JoxTraex

答えて

2

16個のボタンとすべてのボタンがあるとします。 s setOnclicklistenerこれは、あなたのクラスでこれと同様のコードの繰り返しをたくさん作成していることを意味します。そして、それはあなたのコードを醜いものにします。これはコードを書くための効率的な方法でもありません。あなたのコードを効率的にするには、あなたの活動にOnClickListener()を実装してから、各ボタンに対してbuttonX.setOnClickListener(this)を使用する必要があります。オーバーライドonClickメソッドを使用します。このメソッドでは、Switch caseブロックを使用するか、elseボタンを押して、どのボタンが押されたかを識別できます。だからonClickメソッドでは、ボタンのIDを与える必要があります。オーバーライドonClick方法

@Override 
public void onClick(View view) { 
    switch(view.getId){ 
     case R.id.buttonX: 
     // Do something 
} 
0

その本 プライベートボタンbtn_Loginのように定義されました。

ボタンはクラス です。onClickListenerは、setOnClickListenerメソッドを使用しているリスナーを設定するリスナーです。

次回以降、そのような種類の説明が必要な場合は別のスレッドに投稿しないでください。その質問自体にコメントを追加してください。

は、それはウィジェットのクリックで発生するイベントを指定することができますリスナーですalsina

0

@augustありがとうございました。

0

クラスがView.OnClickListenerを実装する場合、メソッドpublic void onClick(View v)の各ボタンのクリックを定義できます。キーワードthisは、方法onclickを参照してください。クラスファイルにたくさんのボタンがある場合、この方法を使用するとよいでしょう。

button1.setOnClickListener(this); 
button2.setOnClickListener(this); 

とその定義のOnCreateメソッドを定義します。Createメソッドで次のコードを定義することができます。たとえば、次のように素人の面では

public void onClick(View v){ 
int id= v.getId(); 
switch (id){ 
    case R.id.btn1: { 
    //do sth 
    //break; 
    } 
    case R.id.btn2: { 
    //do sth 
    //break; 
    } 
    ... 
    } 
} 
0

btn_loginたびbtn_Login.setOnClickListener(this);

を書き込むことにより

プログラムはonclickの方法public void onClick(View v)

に行くと、あなたは何の方法で書くことができ押されますボタンを押したときにやりたいこと

関連する問題