
我正在尝试卡片视图而不是按钮视图,我喜欢可以添加到他们的信息量.但是我想这样做,所以如果他们按卡片,它就会变色.一旦发布,我希望它变回来.因此它的工作方式与我的按钮类似.
我可以得到它,以便它在单击时发生变化,但是直到活动被破坏之前,它都保持不变,
这是我目前用于更改颜色的代码.
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)); } } });解决方法:
您可以尝试将OntouchListener与ACTION_DOWN和ACTION_UP结合使用来处理Press / Release事件,而不是OnClickListener.
修改后的代码:
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.setontouchListener(new OntouchListener () { public boolean ontouch(VIEw vIEw, MotionEvent event) { if (event.getAction() == androID.vIEw.MotionEvent.ACTION_DOWN) { 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)); } } else if (event.getAction() == androID.vIEw.MotionEvent.ACTION_UP) { /* reset color */ cardVIEw.setCardBackgroundcolor(mcontext.getResources().getcolor(R.color.red)); } return true; } }}链接:http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_UP
总结以上是内存溢出为你收集整理的java-选择时如何更改卡片视图的颜色全部内容,希望文章能够帮你解决java-选择时如何更改卡片视图的颜色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)