我正在尝试卡片视图而不是按钮,我喜欢你可以添加到它们的信息量。但我正在尝试使它,如果他们按下卡片,它会改变颜色。我希望它改变回来,一旦他们释放,所以它的工作方式类似于我的按钮。
我可以得到它,使它改变点击,但它保持这样,直到活动被摧毁。
这是我现在用来改变颜色的代码:
public void setSingleEvent(GridLayout maingrid) {
for (int i = 0; i < maingrid.getChildCount(); i++) {
final CardView cardView = (CardView) maingrid.getChildAt(i);
final int finalI = i;
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(mcontext, "Button: " + finalI, Toast.LENGTH_SHORT).show();
cardView.setCardBackgroundColor(mcontext.getResources().getColor(R.color.buttonPressed));
if (finalI == 0) {
mcontext.startActivity(new Intent(mcontext, Genre_Streaming.class));
}
}
});
2条答案
按热度按时间fkvaft9z1#
您可以尝试将
OnTouchListener
与ACTION_DOWN
和ACTION_UP
搭配使用,以取代OnClickListener
来行程按下/释放事件。修改的代码:
**链接:**developer.android.com/reference/android/view/MotionEvent.html#ACTION_UP
dwthyt8l2#
您可以尝试使用
onTouchListener
而不是onClickListener
来捕获“运动事件”,这是一个用于报告移动(鼠标、笔、手指、轨迹球)事件的对象。以下是android documentation page的运动事件常量列表