为什么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”之后不跟随其他消息“ End”(In-> End)呢?
答案 0 :(得分:1)
在示例开头,OnCreate被调用一次。 显示Toast“开始”,设置OnTouchListener,然后显示Toast“结束”。
在设置每个Touch之后,将在每个Touch上调用OnTouchListener,而不是在首次设置时调用。 如果希望在“ In” Toast之后调用“ End” Toast,则需要在“ In” Toast之后从OnTouchListener内部显示Toast。
答案 1 :(得分:0)
当不是每次创建活动时,End只会显示一次,但是您触摸该视图时,In就会显示多次,如果您想在In每次显示时都显示End,则在In后面放上吐司,否则明智的End将仅显示一次,即onCreate()。