1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

onTouchEven Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MazzMan, 24.02.2012.

  1. MazzMan, 24.02.2012 #1
    MazzMan

    MazzMan Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    24.02.2012
    Hallo,
    da ich lernen will, wie man Apps für Android schreibet, hab ich mich mal etwas ganz kleines gemacht.
    Ich habe ein Knopf gemacht, der den Text aus einem Edit-Feld raus nimmt und dann unten wieder ausblendet. Das kalppt ohne Problem. Nun habe ich ein zweites Event eingefügt, dass einen Text ausgeben soll, wenn man einfach den Bildschirm berührt, jedoch passiert nichts.
    Code:
    package com.example.helloandroid;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import android.view.MotionEvent;
    
    public class HelloAndroid extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            //knopf an einen event handler machen
            Button btn1 = (Button)findViewById(R.id.btnClickMe);
            btn1.setOnClickListener(btnListener);
            
        }
        
        private OnClickListener btnListener = new OnClickListener()
        {
            public void onClick(View v)
            {
                EditText et = (EditText)findViewById(R.id.editText1);
                String text = et.getText().toString(); 
                Toast.makeText(getBaseContext(),
                        text,
                        Toast.LENGTH_LONG).show();
            }
        };
        
        public boolean onTouchEven(MotionEvent event)
        {
            int action = event.getAction();
            if(action == MotionEvent.ACTION_DOWN)
            {
                Toast.makeText(getBaseContext(),
                        "Du hast den Bildschirm berührt!",
                        Toast.LENGTH_LONG).show();
            }
            
            return true;
        }
    } 
    Ich weiß nicht, an was das liegt. Ich bitte um Hilfe.

    MfG
    MazzMan
     
  2. snowman2, 24.02.2012 #2
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Code:
    btn1.setOnTouchListener(xxx);
    hinzufügen ;)
     
  3. snowman2, 24.02.2012 #3
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Noch etwas genauer:
    Code:
            btn1.setOnTouchListener(TListener);         
    
            private OnTouchListener TListener = new OnTouchListener() {
                
                public boolean onTouch(View v, MotionEvent event) {
                    // TODO Auto-generated method stub
                    return false;
                }
            };
    
    Also du must das gleiche machen wie bei deinem Clicklistener
     
  4. MazzMan, 24.02.2012 #4
    MazzMan

    MazzMan Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    24.02.2012
    Danke für die Antworten :)
    Aber was muss ich machen, wenn ich einfach nur den Bildschirm berühren möchte, egal wo?
     
  5. snowman2, 24.02.2012 #5
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Ich weiß es auch nicht genau, deswegen rate ich mal.
    Dein Button liegt warscheinlich in einem LinearLayout o.ä. also rufst du setOnTouchListener von dem LinearLayout auf. Die Vorgehensweise ist wie bei deinem Button. Dem LinearLayout kannst du die Beite und Höhe "fill_parent" geben, damit der gesamte Bildschirm damit ausgefüllt ist.
     

Diese Seite empfehlen