工作只是听众
之一,我有RelativeLayout
两个听众:onTouch
& onClick
:工作只是听众
private RelativeLayout userItem; userItem = (RelativeLayout) activity.findViewById(R.id.sliding_menu_userItem_rL);
userItem.setOnClickListener(userItemOnClick());
userItem.setOnTouchListener(userItemOnTouch());
/**
* Add user item reaction on click
*/
private View.OnClickListener userItemOnClick() {
Log.d(LOG_TAG, "userItemOnClick");
return new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction t = getSupportFragmentManager().beginTransaction();
UserFragment mFrag = new UserFragment();
Log.d(LOG_TAG, "replace");
t.replace(R.id.fragment_container, mFrag);
t.addToBackStack(null);
menu.toggle();
t.commit();
}
};
}
/**
* Add user item reaction on touch
*/
private View.OnTouchListener userItemOnTouch() {
return new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
userItem.setBackgroundResource(android.R.color.holo_blue_dark);
break;
case MotionEvent.ACTION_UP:
userItem.setBackgroundResource(R.drawable.sliding_menu_user_item_bg);
break;
default:
break;
}
return true;
}
};
}
的问题是,onClickListener只有当这条线commeted反应:在其他情况下,工作
userItem.setOnTouchListener(userItemOnTouch());
只有onTouchListener。我不知道为什么。请帮助。
回答:
你不能同时使用两个,所以如果你想继续一个特殊的条件,你可以定义一个布尔变量,然后返回这个布尔值在你的onTouchListener
监听器中,所以通过制作true/false你的变量它会切换你的onTouchListener
监听器激活/取消激活。
同样的问题:
Android :: OnTouchListener && OnClickListener combination issue
Difference between OnTouchListener and OnClickListener
How to combine OnClickListener and OnTouchListener for an ImageButton
回答:
据OnTouchListener,返回在onTouch
true
意味着听众已经消耗的情况下,这样就不会达到你的OnClickListener
。请尝试并返回false
。
回答:
尝试了这一点得到双方易加工
userItem.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
//Your work here
return false;
}
});
userItem.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Your work here
}
});
以上是 工作只是听众 的全部内容, 来源链接: utcz.com/qa/262900.html