Android Studio: Klick auf den gesamten Bildschirm?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

In der onCreate-Methode ergänzen:

layout.setOnClickListener(this);

layout natürlich durch dein Layout ersetzen.

Lasse die Activity das Interface OnClickListener implementieren.

Dann ergänze noch diese Methode zu deiner Activity:

@Override
public void onClick (View v) {
   // Deine Aktion
}

Außerdem sollte das Layout natürlich die volle Fläche ausmachen, die anklickbar sein soll.


Jul8910 
Beitragsersteller
 18.08.2017, 19:29

Was kann ich tun, wenn ich schon einen OnInitListener in meine Activity implementiert habe? 

tavkomann  18.08.2017, 19:44
@Jul8910

Du kannst beliebig viele Interfaces implementieren: Einfach per Komma trennen.

Jul8910 
Beitragsersteller
 18.08.2017, 20:00
@tavkomann

...hab es inzwischen anders gelöst :) ...trotzdem Danke! Ich habe nun den OnClickListener implementiert: 

public class SpielActivity extends AppCompatActivity implements View.OnClickListener {private TextToSpeech tts;

@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_spiel);

tts = new TextToSpeech(SpielActivity.this, new TextToSpeech.OnInitListener() {
@Override public void onInit(int status) {
tts.setLanguage(Locale.GERMAN);
}
});
activity_spiel.setOnClickListener(this);

//Hier wird auf das .setOnClickListener mit einer Fehlermeldung hingewiesen!
}

//Hier wird auf das .setOnClickListener mit einer Fehlermeldung hingewiesen! Was kann ich tun?

tavkomann  18.08.2017, 20:03
@Jul8910

Die Fehlermeldung wäre interessant und der Code sollte lesbar sein, am besten auf pastebin.

tavkomann  19.08.2017, 13:24
@Jul8910
activity_spiel.setOnClickListener(this); // .setOnClickListener ist rot unterstrichen (Error: int cannot be dereferenced)

activity_spiel ist scheinbar ein int. Du musst dem Layout selbst, welches sich über den gesamten Bildschirm erstreckt, eine ID zuweisen, eine Referenz per findViewById erhalten und auf diese die Methode setOnClickListener anwenden.

Jul8910 
Beitragsersteller
 20.08.2017, 11:25
@tavkomann

Und als was für eine Art von Typ muss ich es zuweisen? (Bei einem Button ist es klar: 

Button mybutton = (Button) findViewById(R.id.dereinebutton) ) ? 

tavkomann  20.08.2017, 12:31
@Jul8910

Es kommt darauf an, welches Layout du genommen hast. Z.B. 

RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl);
Jul8910 
Beitragsersteller
 20.08.2017, 18:53
@tavkomann

Hat funktioniert...ein wenig anders aber vom Prinzip her gleich. Vielen Dank ! :)

Du kannst eine Funktion im OnClick Attribut dem Layout zuweisen. Diese Funktion schreibst du jetzt im der Activity und bei einem Click wird diese dann Ausgeführt.


Jul8910 
Beitragsersteller
 17.08.2017, 12:57

Könntest du eventuell etwas ausführlicher erklären, oder am besten die nötigen "Codeschnipsel" schicken? :D

Du musst irgendwo die onTouch oder onClick oder wie die heißt überschreiben.

Sorry falls die Antwort etwas unklar ist, aber ich habe schon seit 2 Monaten kein Android mehr angefasst.


Jul8910 
Beitragsersteller
 17.08.2017, 12:07

Okay ;)

Jul8910 
Beitragsersteller
 17.08.2017, 12:01

Kannst du das eventuell noch etwas genauer beschreiben? :)

FireCubx  17.08.2017, 12:05
@Jul8910

Ich lass das mal lieber die GF Kollegen machen, sonst erzähl ich dir hier noch Blödsinn :D