为什么setOnTouchListener
之后的订单不起作用?
例如:
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
public RelativeLayout MYLL=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MYLL=(RelativeLayout) findViewById(R.id.MYL);
Toast.makeText(getApplicationContext(), "Begin", Toast.LENGTH_SHORT).show();
MYLL.setOnTouchListener(this);
Toast.makeText(getApplicationContext(), "End", Toast.LENGTH_SHORT).show();
}
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(getApplicationContext(), "In", Toast.LENGTH_SHORT).show();
return false;//or true
}
}
激活setOnTouchListener
时查看消息"In"但是为什么在消息"In"之后没有跟随另一条消息"End"(In->End(为什么?
OnCreate在示例的开头被调用一次。显示Toast"开始",设置OnTouchListener,然后显示Toast的"结束"。
OnTouchListener在设置后每次触摸时都会调用,而不是在第一次设置时调用。如果您希望在"In"Toast之后调用"End"Toast,则需要在"In(Toast之后从OnTouchListener内部显示Toast。
当活动不是每次都创建时,End将只显示一次,但In将在您触摸该视图时多次显示。如果您想在每次In出现时显示End,请将toast放在In之后,则其他方式的End将只显示一次,即onCreate((。