2017-12-02 20 views
0

私はこれまでいくつかのボタンを持つアプリケーションを持っています。 のボタン以外の何かがクリックされたときに発生するonClick()イベントをどのように設定できますか? 私の場合:チュートリアルがあります。クリック可能なボタン以外のものをクリックすると、「これはclickableではありません、Xをクリックしてください」というメッセージが表示されます。リスナーによって処理されないクリックを処理する方法は?

答えて

0

すべてViewは、リスナでキャッチできるonClickイベントを受信できます。

すべてのクリックイベントをリッスンし、ボタンをクリックしたときに特定のアクションを実行する場合は、クリックしたメッセージにメッセージを表示する場合は、アクティビティをOnClickListenerに設定し、クリックされたビューです。

public class MainActivity extends Activity implements View.OnClickListener{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     View v = findViewById(R.id.top_most_view); 
     v.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v){ 
     if(v.getId() == R.id.button1){ 
     // do something for the button 
     }else if(v.getId == R.id.button2){ 
     // other button 
     }else{ 
     // Show the non clickable message 
     } 
    } 

} 

R.id.top_most_viewは、レイアウトの一番上のビューのIDです。たとえば、他のすべてのビューを含むLinearLayoutです。

この例では、2つのボタンしか配置しませんが、必要な数だけ追加できます。また、ifsをカスケードする代わりにスイッチを使用することもできます。

コードにいくつかのタイプミスがあり、テストしませんでした。しかし、ソリューションを実装する方法の一般的な考え方を知る必要があります。

+0

ありがとう – InDaPond

関連する問題