Android 通过mainactivity动态更改可绘制文件

Android 通过mainactivity动态更改可绘制文件,android,background,textview,android-drawable,Android,Background,Textview,Android Drawable,我的问题如下: 我有一个Mainactivity类,其中有一个方法,该方法获取id为colorselected的TextView 主要活动方法: 第一个XML文件中的文本视图: 正如您所见,my TextView使用了一个名为colorselecteddrawable的可绘制文件,该可绘制文件中的代码是: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.co

我的问题如下:

我有一个Mainactivity类,其中有一个方法,该方法获取id为colorselected的TextView

主要活动方法:

第一个XML文件中的文本视图:

正如您所见,my TextView使用了一个名为colorselecteddrawable的可绘制文件,该可绘制文件中的代码是:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="50dp"/>
    <solid android:color="#000000" />

</shape>
每当执行onColorSelected方法时,我试图设置TextView的背景色。但是,如果我使用现在的方法,我的TextView不再是圆形的,可能是因为TextView背景色被覆盖,不再使用drawable

因此,我的问题是:如何更改Mainactivity方法,以便在执行该方法时将标记更改为新颜色?

您应该在xml代码中添加android:shape=rectangle或android:shape=oval


你能检查一下我的答案吗?谢谢。这并没有解决它:/当它第一次改变时,但一旦我执行colorselected方法,它就会覆盖Drawables。你应该为selected状态添加一个形状。然后你可以在xml代码中使用它。然后你可以为shape normal和shape selected添加select.xml。你可以检查这个链接@PieterDesseyn
<TextView
    android:id="@+id/colorselected"
    android:layout_width="15dp"
    android:layout_height="15dp"
    android:background="@drawable/colorselecteddrawable"
    ... />
 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners android:radius="50dp"/>
    <solid android:color="#000000" />

</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">

    <corners android:radius="50dp"/>
    <solid android:color="#000000"/>

</shape>