同样的onTouchListener不起作用

时间:2014-10-08 13:21:56

标签: android ontouchlistener ontouch

我在两个不同的活动中有完全相同的代码(当然有不同的xml布局和不同的变量名称和id)

只有与父宽度/高度相匹配的图像视图才能触摸启动函数的onTouchListener。

第二项活动也是如此。 (这些活动与其他人没有任何关系,另一个人开始另一个并自杀。

ImageView wall;
TextView welcome;
Typeface tf;
Sound sound;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start);
    sound = new Sound(Start.this);

    welcome = (TextView) findViewById(R.id.welcome);
    wall = (ImageView) findViewById(R.id.wall);

    live();
}

private void live()
{
    wall.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction() & MotionEvent.ACTION_MASK) {

                case MotionEvent.ACTION_DOWN:
                    v.setPressed(true);

                     next(); //starts a new activity and kills self (this.finish())

                    break;
                default:
                    v.setPressed(false);
                    break;
            }

            return true;
        }

    });
}

然后是第二项活动

Sound sound;
ImageView ball;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.next1);
    sound = new Sound(next1.this);

    ball = (ImageView) findViewById(R.id.ball);

    ball.setEnabled(true);
    live();
}

private void live()
{

 //it's calling so far...

 //but the listener wont work
   ball.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction() & MotionEvent.ACTION_MASK) {

                case MotionEvent.ACTION_DOWN:
                    v.setPressed(true);

                    startFunction();

                    break;
                default:
                    v.setPressed(false);
                    break;
            }

            return true;
       }

    });
}

这是一个扭曲,ontouchlistsner或clicklistener或在第一个活动中的任何工作正常,但在第二个没有ontouch或onclick工作,但如果我在xml文件中设置onclick,它工作,wtfisupwiththat ...?

编辑:我的xml文件。它们几乎一样,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
tools:context=".Start">

<ImageView
    android:id="@+id/wall"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff3242"/>

</RelativeLayout>

和next1.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
tools:context=".next1">

<ImageView
    android:id="@+id/ball"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#333333"/>

</RelativeLayout>

0 个答案:

没有答案