1. MazzMan, 24.02.2012 #1
    MazzMan

    MazzMan Threadstarter Neuer Benutzer

    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

    Code:
    btn1.setOnTouchListener(xxx);
    hinzufügen ;)
     
  3. snowman2, 24.02.2012 #3
    snowman2

    snowman2 Erfahrener Benutzer

    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

    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

    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.