我有4个文本视图,在4个文本视图中,我必须从4个文本视图中选择任何人,还必须更改背景颜色(绿色)的同时突出显示它。每个文本视图使用自定义可绘制背景。选择一个文本视图,并在同一时间更改其颜色4个文字视图
这是TextView的XML:
<TextView
android:id="@+id/textview1"
android:layout_width="match_parent"
android:layout_height="@dimen/_55sdp"
style="@style/ChoosePlan"
android:background="@drawable/choose_plan_bg"
android:text="@string/part_time_monthly"
/>
这意味着
setBackground(getResources().getDrawable(R.color.green));
将无法正常工作。
所以,我想是这样的:
private void changeColor()
{
Drawable tempDrawable = getResources().getDrawable(R.drawable.choose_plan_bg);
LayerDrawable bubble = (LayerDrawable) tempDrawable; //(cast to root element in xml)
GradientDrawable solidColor = (GradientDrawable) bubble.findDrawableByLayerId(R.id.outerRectangle);
solidColor.setColor(getResources().getColor(R.color.green));
textview1.setBackground(tempDrawable);
textview1.setTextColor(getResources().getColor(R.color.white));
}
和onclick事件我把上面的方法:
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.tv_partTimeMonthly:
changeColor();
checkDoneBtnVisibile();
break;
case R.id.tv_partTimeAnnually:
checkDoneBtnVisibile();
break;
case R.id.tv_fullTimeMonthly:
checkDoneBtnVisibile();
break;
case R.id.tv_fullTimeAnually:
checkDoneBtnVisibile();
break;
case R.id.iv_back_button:
finish();
break;
}
}
PS:必须使用的TextView(无ImageView的)
我被困到它。你能帮我把我推进吗?
由于提前
共享截图:
那么你现在面临的问题究竟是什么?这段代码的结果是什么? – skbrhmn
@skbrhmn我的代码不会工作我需要什么。我的观点是在4个文字浏览中一次选择任何一个textview –
我的意思是应用程序崩溃,或者它只是没有做你想做的事情?你的意思是说,当你触摸一个textView时,你只想'textView改变颜色,其他人要回到'choose_plan_bg'背景? – skbrhmn