我基本上想做的是:
当我单击按钮时,我希望其文本颜色以其他颜色显示.
我试过的是:
<selector xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:state_pressed="true" androID:color="@color/red" /> <item androID:state_pressed="false" androID:color="#000" /></selector>
然后我确实将此选择器用作按钮androID:textcolor上的可绘制对象
但这并不能解决问题,因为它仅在我按下按钮时改变其颜色.
我想要这样:
默认值:黑色
点击时:蓝色
再次单击:黑色
任何想法如何做到这一点? :S
这是按钮的形状(如果有的话):
<?xml version="1.0" enCoding="utf-8"?><inset xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:insetBottom="-1dp" androID:insetleft="-1dp" androID:insetRight="-1dp"> <selector> <item androID:state_pressed="false"> <shape androID:shape="rectangle" > <corners androID:radius="0dp" /> <solID androID:color="@color/background_grey" /> <padding androID:left="0dp" androID:top="0dp" androID:right="0dp" androID:bottom="0dp" /> <size androID:wIDth="100dp" androID:height="30dp" /> <stroke androID:wIDth="1dp" androID:color="#ffb4b4b4" /> </shape> </item> <item androID:state_pressed="true"> <shape androID:shape="rectangle" > <corners androID:radius="0dp" /> <solID androID:color="@color/pq_blue" /> <padding androID:left="0dp" androID:top="0dp" androID:right="0dp" androID:bottom="0dp" /> <size androID:wIDth="100dp" androID:height="30dp" /> <stroke androID:wIDth="1dp" androID:color="#ffb4b4b4" /> </shape> </item> </selector></inset>
提前
编辑
因此,我尝试以编程方式进行 *** 作,并按照以下说明进行 *** 作,只是看它是否会更改颜色..但是是..它不起作用(似乎我的onClick事件不起作用):
@OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { VIEw rootVIEw = inflater.inflate(R.layout.ListvIEw_item, container, false); final button likebutton = (button)rootVIEw.findVIEwByID(R.ID.btlike); likebutton.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { String test = "tester"; if(button_STATE==button_STATE_ONCE){ likebutton.setTextcolor(getResources().getcolor(R.color.pq_blue)); button_STATE = button_STATE_TWICE; }else{ likebutton.setTextcolor(getResources().getcolor(R.color.red)); button_STATE = button_STATE_ONCE; } } }); return rootVIEw;}
}
注意:我在onCreateVIEw中做所有这些事情,因为我在我的ActionBaractivity的片段中(带有标签),如果我在onCreate中这样做,我在findVIEwByID处得到一个空指针异常(因为它在我的mainActivity中搜索ID,如果我正确?)
是的..有什么想法吗?
解决方法:
您的textselector.xml-
<selector xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:state_pressed="true" androID:color="@color/red" /> <!--selected text colour--> <item androID:state_focused="true" androID:color="@color/red" /> <item androID:color="@color/blue" /> <!--unselected text colour--></selector>
您在layout.xml中的按钮-
<button androID:ID="@+ID/btn1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Exit" androID:textcolor="@drawable/textselector" <!-- SET textselector HERE --> androID:background="@drawable/button_color"/>
总结 以上是内存溢出为你收集整理的一次按下按钮时如何更改文本颜色(Android)全部内容,希望文章能够帮你解决一次按下按钮时如何更改文本颜色(Android)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)