我在两个不同的活动中有完全相同的代码(当然有不同的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>