2017-12-02 2 views
0

Ich habe eine Anwendung mit mehreren Schaltflächen bisher. Wie können Sie ein onClick() Ereignis einrichten, das ausgelöst wird, wenn auf etwas anderes als die Schaltflächen, die derzeit clickable sind, geklickt wird? In meinem Fall: Es gibt ein Tutorial, und wenn Sie auf etwas klicken, außer die möglichen Schaltflächen, die angeklickt werden können, möchte ich eine Nachricht mit der Aufschrift "Dies ist nicht clickable jetzt, klicken Sie bitte auf X").Wie behandelt man einen Klick, der nicht von Listeners behandelt wird?

Antwort

0

Jeder View kann ein onClick Ereignis empfangen, das mit einem Listener abgefangen werden kann.

Wenn Sie auf alle Klickereignisse achten und bestimmte Aktionen ausführen möchten, wenn auf die Schaltflächen geklickt wird, und für alle anderen, die eine Nachricht anzeigen, können Sie die Aktivität als OnClickListener festlegen und dann überprüfen, welche ist die Ansicht, auf die geklickt wurde.

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 ist die ID der obersten Ansicht Ihres Layouts. Zum Beispiel ein LinearLayout, das alle anderen Ansichten enthält.

In dem Beispiel habe ich nur zwei Tasten, aber Sie können beliebig viele hinzufügen. Sie können auch einen Schalter anstelle von kaskadierenden Wenns verwenden.

Der Code kann einen Tippfehler haben, ich habe es nicht getestet. Aber Sie sollten die allgemeine Vorstellung davon bekommen, wie Sie die Lösung implementieren können.

+0

Danke ich werde das versuchen – InDaPond

Verwandte Themen